簡體   English   中英

從pandas Dataframe中提取月份數據

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM