Pandas dataframe日期转换报错TypeError: 'Series' object is not callable求助
Pandas日期转换报错解决方案
报错根因
该报错和日期格式、列数据本身没有关系,核心原因是你在之前的代码运行过程中,不小心将pd.to_datetime这个pandas原生方法覆盖成了一个Series类型的变量,后续调用pd.to_datetime()时实际是在调用不可执行的Series对象,因此触发报错。
解决步骤
- 第一步:重启Python运行环境(Jupyter Notebook/Lab请重启内核,本地脚本请终止进程后重新运行),清除之前错误赋值的变量,单独运行日期转换代码测试,绝大多数情况下重启即可解决问题。
- 第二步:如果重启后仍报错,检查全量代码中是否存在类似
pd.to_datetime = df['某列名']的错误赋值语句,删除该类语句避免覆盖原生方法。
两列日期的正确转换代码
你给出的trending_date的格式参数是正确的,publish_date为标准ISO日期格式,pandas可自动识别,完整转换代码如下:
import pandas as pd # 转换trending_date,格式匹配:年.日.月 df['trending_date'] = pd.to_datetime(df['trending_date'], format = '%y.%d.%m') # 转换publish_date,自动识别标准格式 df['publish_date'] = pd.to_datetime(df['publish_date'])
验证转换结果
执行以下代码查看列类型,确认两列均为datetime64类型即为转换成功:
print(df.dtypes)
内容的提问来源于stack exchange,提问作者Stuti Gupta
相关产品推荐
相关产品推荐

