簡體   English   中英

合並 Pandas DataFrame DateTime 列

[英]Combine Pandas DataFrame DateTime Columns

假設我有如下數據框:

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)

更好地使用pd.to_datetime

df['Date'] = pd.to_datetime(df[['Year','Month','Day']])
>>> df
   Year  Month  Day       Date
0  2003      1    8 2003-01-08
1  2003      2    7 2003-02-07

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM