pandas重命名日期列出现TypeError: 'list' object is not callable怎么办?
报错原因及修复方案
核心原因
pandas的DataFrame.rename()方法的columns参数不支持直接传入列表,仅支持两类合法输入:
- 键为原列名、值为对应新列名的字典
- 可调用对象(如函数、lambda表达式,用于批量转换所有列名)
你向columns参数直接传入了列表['0', 'Fecha'],pandas会尝试将该列表作为函数调用,因此触发TypeError: 'list' object is not callable错误。
另外注意:你通过一维列表生成的DataFrame默认列名为整数类型的0,而非字符串'0',如果字典键写错类型也无法完成重命名。
修复方法
方法1:使用rename传入字典(推荐,仅修改指定列,不影响其他列)
将重命名代码修改为:
df1 = df.rename(columns={0: 'Fecha'})
方法2:直接重写columns属性(适合全列批量重命名,当前场景只有1列更简洁)
代码如下:
df.columns = ['Fecha']
完整可运行代码
import pandas as pd from datetime import datetime, timedelta inicio = datetime(2017,10,1) fin = datetime(2017,10,5) lista_fechas = [(inicio + timedelta(days=d)).strftime("%Y-%m-%d") for d in range((fin - inicio).days + 1)] print(lista_fechas) df = pd.DataFrame(data=lista_fechas) # 修正后的重命名操作 df1 = df.rename(columns={0: 'Fecha'}) print(df1)
内容的提问来源于stack exchange,提问作者Jorge Hernández
相关产品推荐
相关产品推荐

