[英]Extract month data from pandas Dataframe
我原來有字符串格式的日期。 我想從這些日期中提取月份作為數字。
df = pd.DataFrame({'Date':['2011/11/2', '2011/12/20', '2011/8/16']})
我將它們轉換為pandas datetime對象。
df['Date'] = pd.to_datetime(df['Date'])
然后我想提取所有月份。
當我嘗試:
df.loc[0]["Date"].month
這可以返回正確的值11。
但是,當我試圖打電話多個月時,它不起作用?
df.loc[1:2]["Date"].month
AttributeError: 'Series' object has no attribute 'month'
有不同的功能。 pandas.Series.dt.month
用於轉換由datetimes
填充的Series
和用於轉換標量的pandas.Timestamp
。 對於轉換Index
是函數pandas.DatetimeIndex.month
,沒有.dt
。
所以需要:
#Series
df.loc[1:2, "Date"].dt.month
#scalar
df.loc[0, 'Date'].month
#DatetimeIndex
df.set_index('Date').month
df.loc[0]["Date"]
返回一個標量: pd.Timestamp
對象具有month
屬性,這是您正在訪問的屬性。
df.loc[1:2]["Date"]
返回一個系列: pd.Series
對象沒有 month
屬性,如果df['Date']
是一個datetime
系列,它們確實有一個dt.month
屬性。
另外, 不要使用鏈式索引 。 您可以使用:
df.loc[0, 'Date'].month
標量的df.loc[0, 'Date'].month
df.loc[1:2, 'Date'].dt.month
為一個系列
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.