python - 将每一行转换为数据框并连接结果
问题描述
我有一个df
格式如下的数据框,其中content
是一个字符串列。
content
0 {'api': ['api_1', 'api_1', 'api_1'],'A': [1,2,3], 'B': [4,5,6] }
1 {'api': ['api_2', 'api_2', 'api_2'],'A': [7,8,9], 'B': [10,11,12] }
我想将其转换为以下格式:
api A B
0 api_1 1 4
1 api_1 2 5
2 api_1 3 6
3 api_2 7 10
4 api_2 8 11
5 api_2 9 12
我试过这样做,
pd.concat([pd.DataFrame(eval(row['content'])) for (rownum, row) in df.iterrows()])
这有效,但看起来不太好。有没有更好的方法来做到这一点?
解决方案
让我们试试
out = pd.concat(pd.DataFrame(x) for x in df.content.map(literal_eval))
api A B
0 api_1 1 4
1 api_1 2 5
2 api_1 3 6
0 api_2 7 10
1 api_2 8 11
2 api_2 9 12
推荐阅读
- r - 具有三维边缘列表的网络?
- php - 如何在 MySQL 中使用连接语句数据库在 2 个表上插入数据
- c# - FlashMessage 未从浏览器中删除
- c# - 使用英特尔实感摄像头的 Opencvsharp 窗口中没有显示图像
- python - 如何获取用户输入以在 openpyxl 中显示单元格数据?
- angular - Firestore 读取数据计数与文档查询计数不匹配
- javascript - 如何在反应中更改 .gltf 缓冲区 uri?
- json - JWT 的用户登录错误(邮递员 POST 令牌)
- node.js - 在 Express.js 中使用 Firebase 作为身份验证中间件
- java - android volley 和 asynchttpclient 在真实设备上失败,但在模拟器上工作