python - 使用两个逗号分隔的列分解 pandas 数据框
问题描述
我有一个数据,它在行中打包了很多值,但我想必须转换为行数据以使其可用。下面是我的输入的样子。我想分解这个数据集。如果它用于单列,我可以做到,但我无法为两列的组合获得相同的结果。使用熊猫可以实现以下目标吗?
import pandas as pd
data = [{'col1':'val1','col2':'val2','col3':'aaa,bbb,ccc','col4':'ddd,eee,fff'}]
df = pd.DataFrame(data)
输入
col1 col2 col3 col4
val1 val2 aaa,bbb,ccc ddd,eee,fff
期望的输出
col1 col2 col3 col4
val1 val2 aaa ddd
val1 val2 aaa eee
val1 val2 aaa fff
val1 val2 bbb ddd
val1 val2 bbb eee
val1 val2 bbb fff
val1 val2 ccc ddd
val1 val2 ccc eee
val1 val2 ccc fff
解决方案
你可以爆炸两次:
(df.assign(col3=df.col3.str.split(','),
col4=df.col4.str.split(','))
.explode('col3')
.explode('col4')
).reset_index(drop=True)
输出:
col1 col2 col3 col4
0 val1 val2 aaa ddd
1 val1 val2 aaa eee
2 val1 val2 aaa fff
3 val1 val2 bbb ddd
4 val1 val2 bbb eee
5 val1 val2 bbb fff
6 val1 val2 ccc ddd
7 val1 val2 ccc eee
8 val1 val2 ccc fff
推荐阅读
- python-3.x - 在 Python 中创建数据集
- mysql - SQL 错误 [1064] [42000]:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册(在 Dbeaver 编辑器上))
- sql-server - XML 数据类型方法“值”返回 XQuery 而不是值
- google-apps-script - 谷歌表格创建一个按钮,点击它,它将从列表中给出下一个单元格
- javascript - 如何在 Webwork1 模块的 Velocity 文件中使用 JavaScript?
- javascript - 在 JS 中获取音频时长并在 HTML 中显示
- javascript - 无法访问作为道具发送的功能
- python - z3的python API中的结果不一致
- c# - 如何在 Razor C# 中使用 HTML 属性?
- c# - 我正在尝试动态更改 MaxFailedAttempts。我怎样才能改变它?