为何将DateTimeIndex存入DataFrame会报TypeError索引错误?
问题分析与解决方法
错误原因
你把DF初始成了Python普通列表[],而列表只能通过整数索引或切片来访问元素,不能像DataFrame那样用字符串列名'DateCol'来赋值,这就是触发TypeError: list indices must be integers or slices, not str错误的核心原因。
正确实现方式
方式一:直接创建DataFrame
直接将生成的dates传入pd.DataFrame并指定列名:
import pandas as pd dates = pd.date_range("2022-08-19", "2052-02-19", freq=pd.DateOffset(months=6)) DF = pd.DataFrame({'DateCol': dates})
方式二:先初始化空DataFrame再赋值
先创建空的DataFrame对象,再给目标列赋值:
import pandas as pd dates = pd.date_range("2022-08-19", "2052-02-19", freq=pd.DateOffset(months=6)) DF = pd.DataFrame() DF['DateCol'] = dates
方式三:使用insert方法的正确姿势
如果要使用insert方法,需先确保DF是DataFrame对象而非列表:
import pandas as pd dates = pd.date_range("2022-08-19", "2052-02-19", freq=pd.DateOffset(months=6)) DF = pd.DataFrame() DF.insert(0, 'DateCol', dates) # 0表示将列插入到第0位的位置
内容的提问来源于stack exchange,提问作者TourEiffel
相关产品推荐
相关产品推荐

