2017-03-09 153 views
0

我有以下大熊猫dataframes:熊猫据帧更新列

>>> 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.Col3df2.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

看起来您已经习惯了使用R.在Pandas中选择列的语法是df.Col1df['Col1']

您可以连接两个数据帧,按Col3排序,然后删除['Col1','Col2']组合的重复项。如果还没有,则需要将Col3转换为日期时间对象。

> 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