python - Pandas 合并/加入 2 个数据框
问题描述
我有两个要加入的数据框,但是,它们不包含完全相同的行。
我在dataframe1中有这个
test1 1
test2 3
test5 4
test6 5
test7 6
这在dataframe2中
test1 4
test3 5
test4 6
test5 3
test6 3
我想要实现的是以下
col1 col2
test1 1 4
test2 3
test3 5
test4 6
test5 4 3
test6 5 3
test7 6
或者
col1 col2
test1 1 4
test2 3 0
test3 0 5
test4 0 6
test5 4 3
test6 5 3
test7 6 0
解决方案
pd.merge
与 一起使用how='outer'
:
In [1539]: df1
Out[1539]:
col val
0 test1 1
1 test2 3
2 test5 4
3 test6 5
4 test7 6
In [1540]: df2
Out[1540]:
col val
0 test1 4
1 test3 5
2 test4 6
3 test5 3
4 test6 3
In [1541]: df1.merge(df2, on='col', how='outer')
Out[1541]:
col val_x val_y
0 test1 1.0 4.0
1 test2 3.0 NaN
2 test5 4.0 3.0
3 test6 5.0 3.0
4 test7 6.0 NaN
5 test3 NaN 5.0
6 test4 NaN 6.0
In [1542]: df1.merge(df2, on='col', how='outer').fillna(0)
Out[1542]:
col val_x val_y
0 test1 1.0 4.0
1 test2 3.0 0.0
2 test5 4.0 3.0
3 test6 5.0 3.0
4 test7 6.0 0.0
5 test3 0.0 5.0
6 test4 0.0 6.0
推荐阅读
- django - Django 谷歌图书 API totalItems 正在改变
- multithreading - 互斥量与二元接缝之间的差异实际差异
- java - Maven 构建但不在 Cucumber 中执行测试
- python - Python:每 100 行大数据帧应用一次函数
- css - CSS 动画 (transform: rotateY(180deg);) 完美运行,除了 iOS 上的 Chrome
- php - Guzzle api调用执行时间太长,php中的foreach循环
- r - R中的科学记数法
- django-channels - Django Channels 方法语法
- kubernetes - 入口配置设置不会重定向到正确的页面
- reactjs - 在 React-Native 中渲染屏幕内容之前渲染底部标签动画。需要一个用于滞后动画的 Workarround