浮点数转日期时间遇报错:TypeError: 'Series'对象无法解析为整数
解决浮点数转日期时间的TypeError问题
错误原因
你用的datetime.fromtimestamp()和datetime.strptime()是Python标准库的单值处理函数,只能处理单个数值或字符串,没法直接作用于pandas的Series(即DataFrame的列),所以触发了TypeError: 'Series' object cannot be interpreted as an integer。
正确解决方案
直接用pandas内置的pd.to_datetime()函数,它专门针对Series/列级别的数据处理,效率更高且不易出错:
如果浮点数是秒级时间戳(比如
1690000000.123456):import pandas as pd df1['time'] = pd.to_datetime(df1['time'], unit='s')如果是毫秒级时间戳(比如
1690000000123.456):df1['time'] = pd.to_datetime(df1['time'], unit='ms')如果需要格式化显示为字符串格式:
先转成datetime类型后,用dt.strftime()处理整个列:df1['formatted_time'] = df1['time'].dt.strftime("%Y-%m-%d %H:%M:%S,%f")
示例代码
import pandas as pd # 模拟数据 df1 = pd.DataFrame({'time': [1690000000.123456, 1690000100.789012]}) # 转换为datetime类型列 df1['time'] = pd.to_datetime(df1['time'], unit='s') # 生成格式化字符串列 df1['formatted_time'] = df1['time'].dt.strftime("%Y-%m-%d %H:%M:%S,%f") print(df1)
内容的提问来源于stack exchange,提问作者Halahhemy
相关产品推荐
相关产品推荐

