我有一个 Pandas 数据框,其中有一列是一个包含单个字典的列表。 例如:
col1
[{'type': 'yellow', 'id': 2, ...}]
[{'type': 'brown', 'id': 13, ...}]
...
我需要提取与“type”关键字关联的值。有不同的方法可以做到这一点,但由于我的数据框很大(几百万行),我需要一种有效的方法来做到这一点,但我不确定哪种方法是最好的。
答案 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
使用 explode
和 str
访问器:
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) 操作。我确定熊猫数据框也不例外。您将面临的唯一问题是:遍历行。可能没有办法解决。