2017-10-18 66 views
0

這裏是我的數據:如何使用pandas.Series.dt.strftime可以做小時映射嗎?

device_create_at    
136 2014-08-27 17:29:23    
245 2015-09-06 15:46:00    
257 2014-09-29 22:26:34    
258 2014-11-05 13:02:18  

這裏是我的預期輸出

device_create_at    device_create_hour 
136 2014-08-27 17:29:23   2014-08-27 17 
245 2015-09-06 15:46:00   2015-09-06 15 
257 2014-09-29 22:26:34   2014-09-29 22 
258 2014-11-05 13:02:18   2014-11-05 13 

據我所知,pandas.Series.dt.strftime能做到每週映射,代碼是這樣的

sheet2['device_create_week'] = sheet2['device_create_at'].dt.strftime('%Y-%V') 

他們使用%V爲一週而不是%W,我試圖使這個小時

sheet2['device_create_hour'] = sheet2['device_create_at'].dt.strftime('%Y-%M-%D-%H') 

也就是說doeesn't工作

+0

請多關注一下你想要的東西。從您當前的數據和預期結果開始。這對atm沒有幫助。 –

+0

感謝提醒我,我已經更新了問題 –

回答

1
s = df.device_create_at.dt.strftime('%Y-%m-%d %H') 
print(s) 
136 2014-08-27 17 
245 2015-09-06 15 
257 2014-09-29 22 
258 2014-11-05 13 
Name: device_create_at, dtype: object 

注意,格式爲%Y-%m-%d %Hm和小d

+0

OKM我的建議是正確的。關於我的數據的問題,錯誤消息 '只能使用帶datetimelike值的.dt訪問器' –

+0

@NabihIbrahimBawazir此方法的基本假設是您的列是日期時間列。如果不是,你需要使用'pd.to_datetime'並將其轉換爲:'df.device_create_at = pd.to_datetime(df.device_create_at)' –

+0

是的,我已經閱讀過這裏https://stackoverflow.com/questions/33365055/attributeerror-can-only-use-dt-accessor-with-datetimelike-values,並嘗試'pd.to_datetime(df ['device_create_at'],coerce = True)'並且沒有參數調用強制 –

相關問題