Python 3.x 无需迭代即可计算DataFrame datetime.datetime对象
正如我所看到的,如果您希望代码具有可伸缩性,那么迭代数据帧并不有趣 因此,我正在导入一个带有“日期”列的.xlsx电子表格,pandas会自动将其识别为datetime.datetime格式 下面是一个代码示例:Python 3.x 无需迭代即可计算DataFrame datetime.datetime对象,python-3.x,pandas,dataframe,datetime,filter,Python 3.x,Pandas,Dataframe,Datetime,Filter,正如我所看到的,如果您希望代码具有可伸缩性,那么迭代数据帧并不有趣 因此,我正在导入一个带有“日期”列的.xlsx电子表格,pandas会自动将其识别为datetime.datetime格式 下面是一个代码示例: 将熊猫作为pd导入 导入日期时间 df=pd.read\u excel('Sheet.xlsx') df['Date'][0]。月份==1 输出: 真的 如果我尝试df['Date'].month它会给出AttributeError:'Series'对象没有属性'month' 而df
将熊猫作为pd导入
导入日期时间
df=pd.read\u excel('Sheet.xlsx')
df['Date'][0]。月份==1
输出:
真的
如果我尝试df['Date'].month
它会给出AttributeError:'Series'对象没有属性'month'
而df['Date']
输入返回一个包含所有datetime.datetime对象的序列
所以我的问题是,我怎样才能得到一个测试月份所有布尔值的序列,而不必逐个迭代所有行
我也考虑过选择具有给定值的行,但老实说,我一直坚持这样做,因为我正在过滤对象
也可能是错误的,但我相信如果我只需要对月数进行迭代,而不是按每行进行迭代,效率会更高。如果需要从列中提取属性,请使用.dt
:
df['Date'] = pd.to_datetime(df['Date'], errors='coerce')
mask = df['Date'].dt.month == 1
或用于比较:
mask = df['Date'].dt.month.eq(1)
嘿,成功了!!好。。。不能立即使用,因为它得到了
AttributeError:只能将.dt访问器与datetimelike值一起使用error。但在使用.dt访问器之前,我只需要df['Data']=pd.to_datetime(df['Data'],errors='concurve')
,一切正常。谢谢大家!@Azgrom-很有趣,如果从excel读取日期时间,大多数情况下无需转换;)