从熊猫列中有一个元素的列表中提取字典值

时间:2021-03-15 13:11:03

标签: python pandas

我有一个 Pandas 数据框,其中有一列是一个包含单个字典的列表。 例如:

col1
[{'type': 'yellow', 'id': 2, ...}]
[{'type': 'brown', 'id': 13, ...}]
...

我需要提取与“type”关键字关联的值。有不同的方法可以做到这一点,但由于我的数据框很大(几百万行),我需要一种有效的方法来做到这一点,但我不确定哪种方法是最好的。

2 个答案:

答案 0 :(得分:1)

让我们试试这个:

data = {
    'col': [[{'type': 'yellow', 'id': 2}], [{'type': 'brown', 'id': 13}], np.nan]
}
df = pd.DataFrame(data)
print(df)

    col
0   [{'type': 'yellow', 'id': 2}]
1   [{'type': 'brown', 'id': 13}]
2   NaN

使用 explodestr 访问器:

df['result'] = df.col.explode().str['type']

输出:

    col                             result
0   [{'type': 'yellow', 'id': 2}]   yellow
1   [{'type': 'brown', 'id': 13}]   brown
2   NaN                              NaN

答案 1 :(得分:0)

访问大多数数据结构中的任何元素都是 O(1) 操作。我确定熊猫数据框也不例外。您将面临的唯一问题是:遍历行。可能没有办法解决。