python - 分组并加入值但保留所有列

标签 python python-3.x pandas pandas-groupby

我有这个 Dataframe,想按 ID 分组并加入值。

ID  | A_Num | I_Num
--------------------------
001 | A_001 | I_001
002 | A_002 | I_002
003 | A_003 | I_004
005 | A_002 | I_002

期望的输出

ID      | A_Num | I_Num
--------------------------
001     | A_001 | I_001
002;005 | A_002 | I_002
003     | A_003 | I_004

代码:

    df = df.groupby(['A_Num','I_Num'])['ID'].apply(lambda tags: ';'.join(tags))
    df.to_csv('D:\joined.csv', sep=';', encoding='utf-8-sig', quoting=csv.QUOTE_ALL, index=False, header=True)

当我将 DataFrame 写入 csv 文件时,我只有 ID 列。

最佳答案

尝试reset_index():

df=df.groupby(['A_Num','I_Num'])["ID"].apply(lambda tags: ';'.join(tags.values)).reset_index()

这样您从 apply() 的聚合将被执行,然后重新分配为 column 而不是 index

关于python - 分组并加入值但保留所有列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57769053/

相关文章:

python - IPython session 期间内存中对象的大小(使用 Guppy?)

python - 使用单个 PYD 文件创建 Python 包

Python C 扩展与 pyd 一起打包 DLL

python - 确定列值是否在基于另一列的条件范围之间

python - 用前后的平均值填充包含 NaN 的单元格

python - 如何在对象列表中查找字符串的最大长度(Python)

python - 表单返回 <django.db.models.query_utils.DeferredAttribute object at 0x10e6ee898>

python - 如何针对复杂问题适本地使用位置参数

python - 在 pandas (python) 中处理 5000 万行

python - 在带有标签的人类可读文本中保存 Numpy 混淆矩阵