2017-03-09 151 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