2017-10-16 54 views
0

我試圖在一年內彙總最多2個不同州的最低溫度。我的數據框中的列是Date,Name,Tmax,Tmin。嘗試訪問命名索引時拋出KeyError

然而,當我嘗試使用:

df['Year'], df['Month-Date'] = zip(*df['Date'].apply(lambda x: (x[:4], x[5:]))) 

它返回一個密鑰錯誤

使用df.dtypes回報:

NAME  object 
TMAX float64 
TMIN float64 
dtype: object 

所以,雖然我的數據框清晰地顯示日期列,它不在我的列表中。當我在此之前將索引設置爲Date時,沒有錯誤。關於我在做什麼的任何想法都是錯誤的?

回答

0

看來你已經設置了Date作爲你的索引,所以它自然不會顯示爲其中的一列。您現在使用df.index來引用它。

此外,我不建議對datetime數據進行字符串操作。使用訪問器並提取所需的日期組件。如果它不是datetime格式,請使用pd.to_datetime並將其轉換。

# don't run this line if the index is a DateTimeIndex already 
y = pd.to_datetime(df.index, errors='coerce')        
df['Year'], df['Month-Date'] = y.year, y.month 
相關問題