我有以下pandas数据帧:
>>> df1
Col1 Col2 Col3
0 A a 2017-02-28
1 B b 2017-02-28
2 C c 2017-03-08
3 D d 2017-02-28
>>> df2
Col1 Col2 Col3
0 B b 2017-03-05
1 C c 2017-03-05
2 D d 2017-03-05
我希望df1.Col3
的数据更新df2.Col3
,df2.Col3
的日期是最近的答案:
>>> df1
Col1 Col2 Col3
0 A a 2017-02-28
1 B b 2017-03-05
2 C c 2017-03-08
3 D d 2017-03-05
知道如何解决这个问题吗?
答案 0 :(得分:0)
看起来您习惯使用R.在Pandas中选择列的语法是df.Col1
或df['Col1']
。
您可以连接两个数据框,按Col3
排序,然后删除['Col1','Col2']
组合的副本。如果还没有,则需要将Col3
转换为datetime对象。
> df1.Col3 = pd.to_datetime(df1.Col3)
> df2.Col3 = pd.to_datetime(df2.Col3)
> (pd.concat((df1, df2))
.reset_index(drop=True)
.sort_values('Col3')
.drop_duplicates(['Col1','Col2'], keep='last'))
#returns:
Col1 Col2 Col3
0 A a 2017-02-28
4 B b 2017-03-05
6 D d 2017-03-05
2 C c 2017-03-08