我有两个Dataframes
类似如下:合并/ Concat的问题
数据帧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
2 Good Stuff
3 Werid Stuff
4 Crazy Stuff
和期望的结果将在这里
ID VALUE DATE COMMENT
1 google.com 12/28/2015 Bad Stuff
2 yahoo.com 12/28/2015 Good Stuff
3 cnn.com 12/28/2015 Weird Stuff
4 facebooo.com 12/28/2015 Crazy Stuff
看起来和se埃姆斯对我来说很简单,但我无法弄清楚。我已经上下读了熊猫文档并搜索了SOF一段时间。
这就是我现在所拥有的。
#Now, let's try to merge this data using Pandas
indicatorPanda = pd.read_csv('/tmp/i.csv')
commentPanda = pd.read_csv(open('/tmp/e.csv', 'rU'), encoding='utf-8')
mergedPanda = pd.concat([indicatorPanda, commentPanda], axis=1)
mergedPanda.to_csv('/tmp/output.csv', index=False, header=False)
我来接近,但它看起来像concating上轴1仍然保持是第二个“ID”列在最后。
编辑: 所以我现在很接近,我用这:
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
有没有办法只有CONCAT评论到对方有某种性格?我知道我们已经脱离了常规SQL和熊猫的境界。
谢谢,这是“工作” - 但我有重复问题。无论DataFrame 2出现多少次,我都希望项目被添加到DataFrame 1中行的末尾。这可能吗? – gleb1783
这听起来像你想做一个'左'合并?查看更新的答案。您可以指定在'sql'逻辑之后执行'inner'(默认),'right','left'或'outer' join。 – Stefan
这似乎并不奏效:mergedPanda = pd。合并(indicatorPanda,commentPanda,on ='id',how ='left') – gleb1783