2017-03-09 12 views
0

私は、次のパンダのデータフレームがあります。パンダデータフレームの更新列

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

を、私はdf2.Col3の日が答えを持っているために、より最近のものであるときdf2.Col3のデータとdf1.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.Col1またはdf['Col1']です。

2つのデータフレームを連結し、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