python-3.x - pandas 将一行转换为多行
问题描述
我有一个如下的数据框。
我的数据框如下。
ID list
1 a, b, c
2 a, s
3 NA
5 f, j, l
我需要将列表列(字符串)中的每个项目分成独立的行,如下所示:
ID item
1 a
1 b
1 c
2 a
2 s
3 NA
5 f
5 j
5 l
谢谢。
解决方案
然后用于str.split
分隔您的项目explode
:
print (df.assign(list=df["list"].str.split(", ")).explode("list"))
ID list
0 1 a
0 1 b
0 1 c
1 2 a
1 2 s
2 3 NaN
3 5 f
3 5 j
3 5 l
推荐阅读
- xml - 从 BeautifulSoup xml 中提取属性“值”
- apache - 无法传输工件:未解释 settings.xml 属性
- python - 如何退出在 Flask 应用程序中调用的 python 脚本?
- hadoop - Mapper 和 Reducer 如何在“没有”排序的情况下协同工作?
- jquery - 当 div 有程序员添加的类时如何向上滚动
- google-api - 如何使用 google places(或其他)api 访问“标语”?
- google-apps-script - 无法使用访问令牌访问部署为网络应用程序的 Google Apps 脚本
- php - 从格式化日期转换为变量
- php - Laravel 命令输出的节点版本与命令行不同
- scala - 如何打印 Scala 导入