df
次の列を持つデータフレーム があります。
ArrivalDate
936 2012-12-31
938 2012-12-29
965 2012-12-31
966 2012-12-31
967 2012-12-31
968 2012-12-31
969 2012-12-31
970 2012-12-29
971 2012-12-31
972 2012-12-29
973 2012-12-29
列の要素はpandas.tslib.Timestamp
型です。年と月を抽出したいです。
私が試したことは次のとおりです:
df['ArrivalDate'].resample('M', how = 'mean')
次のエラーが発生します。
Only valid with DatetimeIndex or PeriodIndex
それから私は試しました:
df['ArrivalDate'].apply(lambda(x):x[:-2])
次のエラーが発生します。
'Timestamp' object has no attribute '__getitem__'
私の現在の解決策は
df.index = df['ArrivalDate']
次に、インデックスを使用して別の列を再サンプリングできます。
しかし、列全体を再構成する方法がまだ必要です。何かアイデアはありますか?
ベストアンサー1
新しい列に年と月を別々に表示したい場合は、次のようにします。
df['year'] = pd.DatetimeIndex(df['ArrivalDate']).year
df['month'] = pd.DatetimeIndex(df['ArrivalDate']).month
または...
df['year'] = df['ArrivalDate'].dt.year
df['month'] = df['ArrivalDate'].dt.month
その後、それらを組み合わせたり、そのまま操作したりすることができます。