按列组合某些行中的值(以Pandas为单位)

2024-06-07 08:33:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我还没有找到合适的工具来做我需要在熊猫身上做的事情。 它可能需要groupby(),但我还无法在文档或web上找到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

你知道吗数据框groupby(测向指数).sum()是一个猜测,但它只是在每个索引旁边给出一个NaN。你知道吗


Tags: 数据id方式rdnanhgosloaa
1条回答
网友
1楼 · 发布于 2024-06-07 08:33:43

如果您可以尝试这样的操作,则需要在使用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

相关问题 更多 >

    热门问题