我还没有找到适合我在熊猫中做什么的工具。 它可能需要groupby(),但我无法在文档或网络上找到pythonic方式(或任何其他方式)。
我有一张表格,其中包含类似结构的数据(30-50列):
ID name Town s1 s2 s3 s4
21 Joe Bonn rd fd NaN aa
21 Joe Bonn NaN hg kk NaN
22 Ann Oslo jg hg zt uz
29 Mya Rome rd fd NaN aa
我想组合具有相同ID(可能是索引)的行,将行中的值组合而不重复,形成字符串值的联合类型。
结果将是:
21 Joe Bonn rd fd,hg kk aa
22 Ann Oslo jg hg zt uz
29 Mya Rome rd fd NaN aa
df.groupby(df.index).sum()是一个猜测,但它只是在每个索引旁边给出一个NaN。
答案 0 :(得分:3)
可以尝试这样做,你需要在使用join
函数之前删除缺失的值:
df.groupby(["ID", "name", "Town"], as_index=False).agg(lambda col: ','.join(col.dropna()))
# ID name Town s1 s2 s3 s4
#0 21 Joe Bonn rd fd,hg kk aa
#1 22 Ann Oslo jg hg zt uz
#2 29 Mya Rome rd fd aa