繁体   English   中英

从 pandas 列中的一个元素的列表中提取字典值

[英]Extract dictionary value from a list with one element in a pandas column

我有一个 pandas dataframe ,其中有一列是包含单个字典的列表。 例如:

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

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

让我们试试这个:

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']

output:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM