繁体   English   中英

Python Panda Concat多行

[英]Python Panda Concat Multiple Rows

我正在使用以下代码创建合并的Panda DataFrame。

mergedPanda = indicatorPanda.merge(commentPanda, on='id', how='left')

但是由于Dataframe2中有多行,我遇到了具有相同ID的重复行的问题

所以现在,这是我希望我的最终结果是:

数据框1

ID  VALUE        DATE
1   google.com   12/28/2015
2   yahoo.com    12/28/2015
3   cnn.com      12/28/2015
4   facebook.com 12/28/2105

数据框2

ID  COMMENT
1   Bad Stuff
1   Much Worse Stuff 
2   Good Stuff
3   Werid Stuff
4   Crazy Stuff

期望的结果将在这里

ID   VALUE        DATE          COMMENT
1    google.com   12/28/2015    Bad Stuff | Much Worse Stuff
2    yahoo.com    12/28/2015    Good Stuff
3    cnn.com      12/28/2015    Weird Stuff
4    facebook.com 12/28/2015    Crazy Stuff

有没有一种方法可以将注释与某种字符相互吸引? 我知道我们不属于常规SQL和Panda领域。

您可以先在第二帧上进行groupby ,以获取所需的管道分隔版本,然后将其与第一帧合并:

In [27]: df1
Out[27]:
   ID         VALUE        DATE
0   1    google.com  12/28/2015
1   2     yahoo.com  12/28/2015
2   3       cnn.com  12/28/2015
3   4  facebook.com  12/28/2105

In [28]: df2
Out[28]:
   ID           COMMENT
0   1         Bad Stuff
1   1  Much Worse Stuff
2   2        Good Stuff
3   3       Werid Stuff
4   4       Crazy Stuff

In [29]: df2.groupby("ID").agg(" | ".join)
Out[29]:
                         COMMENT
ID
1   Bad Stuff | Much Worse Stuff
2                     Good Stuff
3                    Werid Stuff
4                    Crazy Stuff

In [30]: df1.merge(df2.groupby("ID").agg(" | ".join), left_on = "ID", right_index=True, how="left")
Out[30]:
   ID         VALUE        DATE                       COMMENT
0   1    google.com  12/28/2015  Bad Stuff | Much Worse Stuff
1   2     yahoo.com  12/28/2015                    Good Stuff
2   3       cnn.com  12/28/2015                   Werid Stuff
3   4  facebook.com  12/28/2105                   Crazy Stuff

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM