2017-10-25 6 views
0

私はそれぞれの行を通過しようとしている(iterrow?)と最新の日付を見つける(ソート機能を?)とカラムに入れて「G」パンダデータフレームは、各行の最近の日付を取得

私は「

反復関数とソート関数を組み合わせるのに問題があります。

A  B   C   D   E   F   G 
0 1  20171018 20171019 20171001 20171002 id_123  
1 2  NaN   20171005 20171006 20171003 id_234  
2 3  NaN   NaN   20171019 20171020 id_345  
3 4  NaN   NaN   NaN   20171021 id_456  

所望の出力ここで

A  B   C   D   E   F   G 
0 1  20171018 20171019 20171001 20171002 id_123  20171019 
1 2  NaN   20171005 20171006 20171003 id_234  20171006 
2 3  NaN   NaN   20171019 20171020 id_345  20171020 
3 4  NaN   NaN   NaN   20171021 id_456  20171021 

は、データフレーム

data2 = {'A': [1, 2, 3, 4], 
     'B': ['20171018', '', '', ''], 
     'C': ['20171019', '20171005', '', ''], 
     'D': ['20171001', '20171006', '20171019', ''], 
     'E': ['20171002', '20171003', '20171020', '20171021'], 
     'F': ['id_123','id_234','id_345','id_456'], 
     'G': ['','','',''] 
     } 
df3 = pd.DataFrame(data2) 

編集を生成するためのコードです:私はすでにあなたが使用できる日時

+0

は、datetimeオブジェクトまたは整数として格納される日付ですか? – James

+0

あなたが私にdownvoting場合は、なぜ、または私の質問が重複している場合は教えてください –

+0

@ジェームズ私はdatetimeを使用して日付の列を変換し、その後、この問題に遭遇しました –

答えて

1

を使用して日付列を変換しています.max()メソッドをデータフレームに追加して、最新の日付を取得します。各行に沿ってmaxを計算するには、パラメータaxis=1を渡す必要があります。

import pandas as pd 

data = {'A': [1, 2, 3, 4], 
     'B': ['20171018', '', '', ''], 
     'C': ['20171019', '20171005', '', ''], 
     'D': ['20171001', '20171006', '20171019', ''], 
     'E': ['20171002', '20171003', '20171020', '20171021'], 
     'F': ['id_123','id_234','id_345','id_456'] 
     } 
df = pd.DataFrame(data) 

# convert to datetimes 
for c in 'BCDE': 
    df[c] = pd.to_datetime(df[c]) 

# create a new column 
df['G'] = df[['B','C','D','E']].max(axis=1) 
print(df) 

    A   B   C   D   E  F   G 
0 1 2017-10-18 2017-10-19 2017-10-01 2017-10-02 id_123 2017-10-19 
1 2  NaT 2017-10-05 2017-10-06 2017-10-03 id_234 2017-10-06 
2 3  NaT  NaT 2017-10-19 2017-10-20 id_345 2017-10-20 
3 4  NaT  NaT  NaT 2017-10-21 id_456 2017-10-21 
+0

ありがとう@ジェームス!私はもっ​​と複雑な答えをまとめようとしていました。あなたの単純さに本当に感謝しています。次回質問をするときに、これらの書式設定の詳細を取り入れます。 –

関連する問題