2017-10-12 36 views
2

我試圖解決我的問題很多小時,但不知何故,我沒有得到正確的解決方案。 我有一個熊貓數據框,其中包含一列日期,這些日期依次存儲爲每行的列表。對列/ pandas.series使用pd.to_datetime列表格式的所有行

df['date']=pd.to_datetime(df["date"]) 

給我的錯誤:unhashable類型:「名單」

我的數據框看起來是這樣的:

0 [February 28, 2013 Thursday] 
1  [November 2, 2012 Friday] 
2   [July 31, 2012 Tuesday] 
3   [May 10, 2012 Thursday] 
4  [June 23, 2004 Wednesday] 

正因爲如此,每行是一個列表,但每個列表只包含一個串。我想在數據框中將每行中的這一個字符串轉換爲日期時間格式(就像02-28-2013),以便我可以執行日期操作。

如何以可以執行pd.to_datetime命令的方式轉換列?

非常感謝你!

回答

1

創建我的數據幀這樣的:

import pandas as pd 
df = pd.DataFrame(columns=['date']) 
df['date']=pd.to_datetime(df["date"]) 
df.date=[['01-01-2013'], ['2-2-2015'], ['July 31, 2012']] 

我以前寫一些隨機的日期,但它也列出了大熊貓。

>>> df.date 
0  [01-01-2013] 
1   [2-2-2015] 
2 [July 31, 2012] 

你要訪問的元素在列表中,因此只需使用lambda函數

pd.to_datetime(df.date.apply(lambda x: x[0])) 

>>> df.date 
0 2013-01-01 
1 2015-02-02 
2 2012-07-31 
相關問題