在python中拆分具有多个值的列
Posted
技术标签:
【中文标题】在python中拆分具有多个值的列【英文标题】:Splitting a column with multiple values in python 【发布时间】:2018-08-26 22:15:56 【问题描述】:我正在尝试在 python 的数据框中拆分一列。 看起来是这样的
col_name UO1 UO1,UO2,UO3 UO1,UO2,UO3,UO4,UO5 UO1,SO1,SO3 SO3,UO1
我不确定如何将它们拆分为行值。我是 python 编程新手
【问题讨论】:
最终的数据框应该是什么样子的? 此列是患者出现的不同症状的列表。由于患者可能出现多种症状。我在想是否有可能从列中为各个患者显示多个值?我不确定,但我在想这样的事情 - id 症状 1 UO1 2 UO1 2 UO2 2 UO3 【参考方案1】:试试
df['id'] = df.index+1
df.set_index('id').col_name.str.split(',', expand = True).stack().reset_index(1, drop = True).reset_index(name = 'symptoms')
id symptoms
0 1 UO1
1 2 UO1
2 2 UO2
3 2 UO3
4 3 UO1
5 3 UO2
6 3 UO3
7 3 UO4
8 3 UO5
9 4 UO1
10 4 SO1
11 4 SO3
12 5 SO3
13 5 UO1
【讨论】:
感谢 Vaishali,对代码稍作修改也尝试了同样的方法。我猜我做错了什么。 你尝试了哪些修改?以上是关于在python中拆分具有多个值的列的主要内容,如果未能解决你的问题,请参考以下文章
如何使用pyspark将具有多个可能值的Json数组列表转换为数据框中的列
MySQL Select ID 出现在具有多个特定值的列的不同行上