我使用以下代码创建合并的Panda DataFrame。
class Mock
但由于Dataframe2中有多行,我遇到了具有相同ID的重复行的问题。
所以,现在,我想要的最终结果是:
DataFrame 1
mergedPanda = indicatorPanda.merge(commentPanda, on='id', how='left')
DataFrame 2
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
所需的结果将在此处
ID COMMENT
1 Bad Stuff
1 Much Worse Stuff
2 Good Stuff
3 Werid Stuff
4 Crazy Stuff
有没有办法将评论以某种角色连接在一起?我知道我们不在常规SQL和Panda的范围内。
答案 0 :(得分:1)
您可以先在第二帧上执行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