Pandas数据框与更新数据合并

时间:2017-02-09 14:02:57

标签: python pandas dataframe merge

我有两个DataFrame:

df1 = pd.DataFrame({'date':['2017-01-01','2017-01-02','2017-01-03','2017-01-04','2017-01-05'], 'value':[1,1,1,1,1]})
df2 = pd.DataFrame({'date':['2017-01-04','2017-01-05','2017-01-06','2017-01-07','2017-01-08'], 'value':[2,2,2,2,2]})

date        value      date        value         
2017-01-01      1      2017-01-04      2
2017-01-02      1      2017-01-05      2
2017-01-03      1      2017-01-06      2
2017-01-04      1      2017-01-07      2
2017-01-05      1      2017-01-08      2

需要合并 df1 df2 才能获得以下结果:

date        value
2017-01-01      1
2017-01-02      1
2017-01-03      1
2017-01-04      2
2017-01-05      2
2017-01-06      2
2017-01-07      2
2017-01-08      2

2 个答案:

答案 0 :(得分:4)

您可以将concatdateprint (pd.concat([df1, df2]).drop_duplicates('date', keep='last')) date value 0 2017-01-01 1 1 2017-01-02 1 2 2017-01-03 1 0 2017-01-04 2 1 2017-01-05 2 2 2017-01-06 2 3 2017-01-07 2 4 2017-01-08 2 一起使用,并保留最后的值:

custom post type

答案 1 :(得分:0)

我相信你可以使用内置于pandas中的combine_first命令。

http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.combine_first.html

在这种情况下你会做

df3 = df1.combine_first(df2)

我不确定它是否适用于您用整数替换整数的情况,或者您是否需要具有NaN值。