以下のようなデータフレームがあるとします。
Year Month Day
2003 1 8
2003 2 7
データフレームで新しく定義された列で年、月、日を組み合わせる方法は次のとおりです。
Year Month Day Date
2003 1 8 2003-1-8
2003 2 7 2003-2-7
これについて何か考えはありますか?
私はパンダのpythonデータフレームを使用しています
ありがとう!
>>> from datetime import datetime
>>> df['Date'] = df.apply(lambda row: datetime(
row['Year'], row['Month'], row['Day']), axis=1)
>>> df
Year Month Day Date
0 2003 1 8 2003-01-08 00:00:00
1 2003 2 7 2003-02-07 00:00:00
更新 2020-03-12: saculからの回答はより良く、より高速です。
%%timeit
df.apply(lambda row: datetime(
row['Year'], row['Month'], row['Day']), axis=1)
2.53 s ± 169 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
# use below, above is slow!!!
%%timeit
pd.to_datetime(df[['Year','Month','Day']])
14.4 ms ± 3.37 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)