Pandas Timestamp无split属性报错:如何从DataFrame索引提取年份?
解决DataFrame Timestamp索引提取年份的报错问题
错误原因
你尝试用字符串的split("-")方法处理索引,但通过parse_dates=True解析后的索引是Timestamp类型,该类型没有split属性,因此触发AttributeError。
正确解决方案
直接利用Timestamp对象的year属性提取年份,这是最简洁高效的方式:
方法1:提取整数类型的年份
energie_2["Année"] = energie_2.index.year
方法2:提取字符串类型的年份(如果需要)
energie_2["Année"] = energie_2.index.year.astype(str)
修正后的完整代码
# Ajout d'une colonne Année energie_2["Année"] = energie_2.index.year batt_na = energie_2[energie_2['Stockage batterie'].notna()] print(batt_na["Année"].unique())
补充说明
使用index.year直接操作Timestamp对象,比字符串分割更高效,还能避免因日期格式不一致导致的分割错误,是处理pandas日期索引的标准方式。
内容的提问来源于stack exchange,提问作者Cédric Piette
相关产品推荐
相关产品推荐

