如何从列表中的多字典提取指定字段到DataFrame?解决索引报错
解决字典列表转DataFrame时的索引错误问题
嗨,我来帮你搞定这个问题!首先咱们先搞清楚你遇到的错误原因:你应该是尝试直接对整个列表使用字典的键来取值(比如写了your_list['time']),但列表只能用整数索引或者切片来访问元素,不能用字符串当索引,所以才会抛出list indices must be integers or slices, not str这个错误。单个字典能正常处理,是因为你直接操作的是字典本身,自然可以用键来取值~
下面给你两种靠谱的解决方法,你可以根据自己的需求选:
方法1:直接构造DataFrame后筛选列
如果你的字典列表里除了time和value还有其他字段,但你只需要这两列,可以先把整个列表转成DataFrame,再筛选出需要的列:
import pandas as pd # 示例字典列表 your_dict_list = [ {"time": "09:15:00", "value": 50, "other_field": "a"}, {"time": "09:30:00", "value": 60, "other_field": "b"}, {"time": "09:45:00", "value": 70, "other_field": "c"} ] # 转成DataFrame并筛选需要的列 df = pd.DataFrame(your_dict_list)[["time", "value"]] print(df)
方法2:先提取目标字段再构造DataFrame
如果你的字典列表非常大,提前提取需要的字段再构造DataFrame会更高效(避免加载不必要的数据):
import pandas as pd # 先遍历列表,只保留每个字典里的time和value字段 filtered_list = [{"time": d["time"], "value": d["value"]} for d in your_dict_list] # 转成DataFrame df = pd.DataFrame(filtered_list) print(df)
如果你按照@Phydeaux的建议尝试后还是有问题,可以把你写的代码贴出来,我再帮你排查细节~
内容的提问来源于stack exchange,提问作者Vash
相关产品推荐
相关产品推荐

