Python 将列值拆分为多个行和列
我面临着熊猫的问题。输入数据为单列:Python 将列值拆分为多个行和列,python,pandas,Python,Pandas,我面临着熊猫的问题。输入数据为单列: MixedColumn ------------- 20_5, 20_5**1 20_7**9 20_4, 40_4, 15_4**2 我想把它拆分成这样的东西: Col1 Col2 -------------- 20_5 1 20_5 1 20_7 9 20_4 2 40_4 2 15_4 2 根据逗
MixedColumn
-------------
20_5, 20_5**1
20_7**9
20_4, 40_4, 15_4**2
我想把它拆分成这样的东西:
Col1 Col2
--------------
20_5 1
20_5 1
20_7 9
20_4 2
40_4 2
15_4 2
根据逗号(如果存在)将逻辑拆分为每一行项目(20_5,20_5),并将它们放在同一列的下一行(Col1)。以及基于**拆分每行项目(**1),并将其与单独列(Col2)中的单个值关联
对不起,如果这是一个noob问题。任何暗示都会帮我的忙。谢谢并祝大家节日快乐。首先在
**
上拆分,获得Col2
,并expand=True
然后,我们使用为每个元素创建新行来创建Col1
:
注:这要求pandas>=0.25.0
从
df = pd.DataFrame({"mixed_column": ["20_5, 20_5**1", "20_7**9", "20_4, 40_4, 15_4**2"]})
df_split = df.mixed_column.str.rsplit("**").apply(pd.Series)
df_split[0] = df_split.apply(lambda x: x[0].split(", "), axis=1)
df_split = df_split.explode(0)
这给了你
0 1
0 20_5 1
0 20_5 1
1 20_7 9
2 20_4 2
2 40_4 2
2 15_4 2
是数据类型对象的mixedcolumn吗?是。其目的
0 1
0 20_5 1
0 20_5 1
1 20_7 9
2 20_4 2
2 40_4 2
2 15_4 2