在我导入Pandas的一些数据中,我有以下几点;

ID Data
1 "[{'id':102, 'name': 'A'}, {'id':103, 'name': 'B'}, {'id':104, 'name': 'C'}]"

我想知道的是,有没有一种好的方法来采用这种 struct ,并按如下方式制作数据帧;

ID names
1 ['A','B','C']

输出姓名列表.

我想写一个函数,并在框架上调用它-但我想知道是否有一个更好的方法,我不知道?

推荐答案

如果Data包含词典列表字符串表示形式,则必须计算内容以将其转换为真正的词典列表.可以用ast.literal_eval,然后用explode Your Series来提取name密钥.最后,GROUP BY INDEX聚合数据:

import ast

df['Names'] = (df['Data'].map(ast.literal_eval).explode().str['name']
                         .groupby(level=0).agg(list))
print(df)

# Output:
   ID                                               Data      Names
0   1  [{'id':102, 'name': 'A'}, {'id':103, 'name': '...  [A, B, C]

如果Data已经包含了一个字典列表,你可以安全地删除.map(...).

Python相关问答推荐

使用FASTCGI在IIS上运行Django频道

Python daskValue错误:无法识别的区块管理器dask -必须是以下之一:[]

如何将Docker内部运行的mariadb与主机上Docker外部运行的Python脚本连接起来

如何请求使用Python将文件下载到带有登录名的门户网站?

Godot:需要碰撞的对象的AdditionerBody2D或Area2D以及queue_free?

SQLAlchemy bindparam在mssql上失败(但在mysql上工作)

(Python/Pandas)基于列中非缺失值的子集DataFrame

为什么Python内存中的列表大小与文档不匹配?

在电影中向西北方向对齐""

如何在GEKKO中使用复共轭物

在极点中读取、扫描和接收有什么不同?

在第一次调用时使用不同行为的re. sub的最佳方式

PYTHON中的pd.wide_to_long比较慢

仅取消堆叠最后三列

如何从一个维基页面中抓取和存储多个表格?

两个名称相同但值不同的 Select 都会产生相同的值(discord.py)

如何在基于时间的数据帧中添加计算值

#将多条一维曲线计算成其二维数组(图像)表示

将鼠标悬停在海运`pairplot`的批注/高亮显示上

以元组为索引的Numpy多维索引