2017-03-25 155 views
0

我有這個foll。 datafrme:將年,月和日轉換爲datetime

 YEAR MO DY name_col 
0 2016.0 1.0 5.0  0.00 
1 2016.0 1.0 6.0  0.00 
2 2016.0 1.0 7.0  0.41 
3 2016.0 1.0 8.0  0.53 
4 2016.0 1.0 9.0  2.12 

如何將分別代表年,月和日的YEAR,MO和DY列轉換爲datetime?

 YEAR MO DY name_col datetime 
0 2016.0 1.0 5.0  0.00 2016-01-05 
1 2016.0 1.0 6.0  0.00 2016-01-06 
2 2016.0 1.0 7.0  0.41 2016-01-07 
3 2016.0 1.0 8.0  0.53 2016-01-08 
4 2016.0 1.0 9.0  2.12 2016-01-09 

我嘗試這樣做:

pd.to_datetime(df_met['YEAR'].astype(int), format='%Y') + pd.to_timedelta(df_met['DY'] - 1, unit='d') 

回答

2

pd.to_datetime()可以組裝從多個列的日期時間,如果列有 「正確的」 姓名:

In [106]: df 
Out[106]: 
    YEAR MO DY name_col 
0 2016.0 1.0 5.0  0.00 
1 2016.0 1.0 6.0  0.00 
2 2016.0 1.0 7.0  0.41 
3 2016.0 1.0 8.0  0.53 
4 2016.0 1.0 9.0  2.12 

In [107]: df['datetime'] = pd.to_datetime(df.rename(columns={'MO':'MONTH', 'DY':'DAY'}).drop('name_col', 1)) 

In [108]: df 
Out[108]: 
    YEAR MO DY name_col datetime 
0 2016.0 1.0 5.0  0.00 2016-01-05 
1 2016.0 1.0 6.0  0.00 2016-01-06 
2 2016.0 1.0 7.0  0.41 2016-01-07 
3 2016.0 1.0 8.0  0.53 2016-01-08 
4 2016.0 1.0 9.0  2.12 2016-01-09 

docs

組裝從m開始的日期時間DataFrame的多個列。鍵 可以通用的縮寫等相同

[‘year’, ‘month’, ‘day’, ‘minute’, ‘second’, ‘ms’, ‘us’, ‘ns’]

或複數

相關問題