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