我有两个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
答案 0 :(得分:4)
您可以将concat
与date
列print (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值。