全球恐怖主义数据集操作遇TypeError:列表索引需为整数/切片而非字符串
问题解决:TypeError: list indices must be integers or slices, not str
- 核心原因:你用了**列表(list)**的索引方式去访问类似DataFrame的列,但
data本身是Python原生列表,不是pandas的DataFrame。列表只能用整数位置索引(比如data[0]),不能用字符串列名['Year']。 - 解决步骤:
- 先确认
data的类型,执行代码:
如果输出是print(type(data))<class 'list'>,说明确实是列表而非DataFrame。 - 若数据集是结构化表格,转换为pandas DataFrame:
转换后再执行import pandas as pd data = pd.DataFrame(data)filterYear = data['Year'] == 1970即可正常运行。 - 若不想使用pandas,直接处理列表:
假设列表内每个元素是包含Year字段的字典,用列表推导式筛选:filterYear = [item for item in data if item['Year'] == 1970]
- 先确认
- 补充说明:你提到确认序列是数值型,应该是指列表中
Year字段的值为数值类型,但这和索引方式无关——问题本质是data的类型不是DataFrame,导致无法用字符串索引列。
内容的提问来源于stack exchange,提问作者FiNiX_Alpha
相关产品推荐
相关产品推荐

