python - Pandas:通过两个分隔符将列拆分为多列
问题描述
我有这样的数据
ID INFO
1 A=2;B=2;C=5
2 A=3;B=4;C=1
3 A=1;B=3;C=2
我想将信息列拆分为
ID A B C
1 2 2 5
2 3 4 1
3 1 3 2
我可以使用一个分隔符拆分列
df['A'], df['B'], df['C'] = df['INFO'].str.split(';').str
然后再次拆分,=
但如果我有很多行,尤其是当有很多字段无法事先硬编码时,这似乎效率不高。
任何建议都将受到欢迎。
解决方案
浏览系列比遍历数据框的行要快得多。
所以我会这样做:
pd.DataFrame([dict([x.split('=') for x in t.split(';')]) for t in df['INFO']], index=df['ID']).reset_index()
它按预期给出:
ID A B C
0 1 2 2 5
1 2 3 4 1
2 3 1 3 2
它应该比拆分两次数据框列更快。
推荐阅读
- javascript - 当子菜单在下拉菜单中处于活动状态时如何停止上滑?
- opencv - FFmpeg/OpenCV 使用 rtsp 强制忽略输入帧持续时间?
- javascript - 在 Javascript 中传递参数时如何将参数附加到函数
- php - PHP Text Stream/Buffer 在脚本之间共享实时数据
- wso2is - 如何使用 SCIM 2.0 表达式在 wso2 5.7.0 中按用户的组显示名称过滤用户?
- jupyter-lab - 在 Jupyterlab 中以编程方式重命名笔记本
- python - 没有任何元数据的 zip 文件
- python-3.x - AttributeError:“int”对象没有属性“move”
- android - Kotlin 中的 JUnit 错误:UninitializedException - lateinit 变量尚未初始化
- javascript - 单击按钮删除项目后如何自动刷新列表