在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 出现在具有多个特定值的列的不同行上

Spark 仅获取具有一个或多个空值的列

在具有循环或 lambda 的多个数据帧中添加具有相同字符串值的列的更有效方法?

用SQL拆分具有多个值的行