如何解决Pandas处理数据时'int' object has no attribute 'strftime'报错
报错原因
你标注位置的代码报错的核心原因是:当前DataFrame的索引为默认的从0开始的整数序列,整数类型没有strftime时间格式化方法,你尝试对整数索引调用时间类方法才触发了报错。
你虽然已经将From Date列转换为了datetime格式,但并没有将该列设置为DataFrame的索引,所以dataframe.index取到的是整数而非你期望的时间值。
解决办法
有两种可行的修改方案,任选其一即可:
方案1:将时间列设置为索引
在dataframe['From Date'] = pd.to_datetime(dataframe['From Date'])这行代码之后,新增一行将时间列设为索引:
dataframe = dataframe.set_index('From Date')
修改后原有提取Month和Time的两行代码可以正常运行。
方案2:直接从时间列提取月份和时间(无需修改索引,更简便)
直接把标注报错的两行及下一行代码替换为以下内容,不需要调整索引即可正常提取值:
dataframe['Month'] = dataframe['From Date'].dt.strftime("%m") dataframe['Time'] = dataframe['From Date'].dt.strftime("%H:%M")
补充注意事项
你代码中出现的"是HTML转义后的双引号符号,实际编写代码时需要替换为正常的英文双引号",否则也会触发语法错误。
内容的提问来源于stack exchange,提问作者Dev
相关产品推荐
相关产品推荐

