python - 合并熊猫中的两个数据框
问题描述
我在下面有两个数据框:
import pandas as pd
data1 = {'date' : ['1', '2','3'],
'value1' : ['a', 'b' ,'c'],
'value2' : ['12','24','4']}
data2 = {'date' : ['2','3','4'],
'value1' : ['b', 'c' ,'g'],
'value2' : ['24','4','55']}
df1 = pd.DataFrame(data1)
df1 = df1.set_index('date')
df2 = pd.DataFrame(data2)
df2 = df2.set_index('date')
这是我想要的输出:
desired_result = {'date' : ['1','2','3','4'],
'value1' : ['a', 'b', 'c', 'g'],
'value2' : ['12', '24', '4', '55']}
我尝试了所有不同类型的合并、连接、连接,但无法弄清楚。谢谢你。
解决方案
这不完全是合并问题,但您可以使用combine_first
:
df1.combine_first(df2).reset_index()
date value1 value2
0 1 a 12
1 2 b 24
2 3 c 4
3 4 g 55
另一个建议是concat
and drop_duplicates
:
pd.concat([df1, df2]).reset_index('date').drop_duplicates('date')
date value1 value2
0 1 a 12
1 2 b 24
2 3 c 4
5 4 g 55
推荐阅读
- scala - 在 Scala 程序中减少 Spark 的日志输出
- java - JDBC 连接池不返回连接,Web 应用程序挂起
- javascript - 如何使用 Shrimpy Universal Crypto Exchange API 连接到 Binance?
- polymer - 如果不包含任何自定义组件,如何在聚合物中使用 wct 测试服务文件
- javascript - Javascript:如何提取字符串中的测量值
- android - 加载网页视图后如何使进度条消失?
- php - 使用 vuejs 发送电子邮件
- javascript - 使用 RegExp 时出错:分配中的左侧无效
- python - 将列表组合成一个 numpy 数组并对对角线值求和
- css - ionic 3使关闭按钮重叠模态的右上角