我正在从嵌套字典格式的数据中提取特定数据。作为在字典格式中选择特定数据作为第一步骤的结果,获得了以下列表格式数据。每一行的数据类型都是一个列表。
dataset
0 []
1 []
2 []
3 [{'A': 1, 'B': 2, 'C': 'information1'}]
4 [{'A': 3, 'B': 4, 'C': 'information2'}, {'...
type(dataset[0])
=> list
type(dataset)
=> pandas.core.series.Series
我再次尝试从这里提取特定数据("C"(。当对每一行使用以下代码时,我可以成功地提取特定的数据。
[d['C'] for d in dict_test2[1]]
=> ['information1']
然而,由于数据超过40k,如果我创建并执行以下方法,我会看到一条错误消息。
def get_c(d):
return [d['C'] for d in dataset]
dataset2 = dataset.apply(get_c)
=> TypeError: list indices must be integers or slices, not str
如有任何帮助,我们将不胜感激。
由于列值是python列表,您可以分解列,然后使用Series.str['key']
、dropna
获取字典值,最后调用tolist()
获取列表值:
>>> df[0].explode().str['C'].dropna().to_list()
['information1', 'information2']