程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Python:按 CSV 中的唯一列合并重复项大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决Python:按 CSV 中的唯一列合并重复项?

开发过程中遇到Python:按 CSV 中的唯一列合并重复项的问题如何解决?下面主要结合日常开发的经验,给出你关于Python:按 CSV 中的唯一列合并重复项的解决方法建议,希望对你解决Python:按 CSV 中的唯一列合并重复项有所启发或帮助;

我的 Python 代码有问题。我正在尝试合并数据框中的行。我有类似的东西:

CODE_ID 尺寸 1 2 3 4 ... 18 代码
12345 X . . . ... . ABC
12345 . X . . ... . 定义
67890 . . . X ... . 你好
67890 . . X . ... . jkl
13579 . . . X ... . xyz

我想按 CODE_ID 合并重复项,但我想加入 CODE 列中的字符串。就这样:

CODE_ID 尺寸 1 2 3 4 ... 18 代码
12345 X X . . ... . abc;定义
67890 . . X X ... . 吉; jkl
13579 . . . X ... . xyz

我用 agg 做到了,但这只是工作的一部分。

g_df = df.groupby("CODE_ID")
group = g_df["CODE"].agg(lambda column: "; ".join(column))
group = group.reset_index(name="CODE")

因为结果是这样的

CODE_ID 代码
12345 abc;定义
67890 吉; jkl
13579 xyz

如何添加其余的列?或者也许这是错误的方法?

解决方法

您可以将 Xs 和 .s 转换为 1/0,然后是 groupby 和 @H_104_221@max,并将其映射回 Xs 和 { {1}}:

.

输出:

(df
     .set_index(['CODE_ID','SIZE'])
     .filter(regex='\d+')              # numeric column names
     .replace({'X': 1,'.': 0})        # map to 1/0s
     .groupby(level=[0,1])            # groupby code and size
     .max()                            # max
     .replace({1: 'X',0: '.'})        # map BACk to X/.
).merge(                               # add ;-separated codes
    df.groupby(['CODE_ID','SIZE'])["CODE"].apply('; '.join),left_index=True,right_index=True,)

大佬总结

以上是大佬教程为你收集整理的Python:按 CSV 中的唯一列合并重复项全部内容,希望文章能够帮你解决Python:按 CSV 中的唯一列合并重复项所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。