在熊猫中将列值拆分为多行和多列

Say*_*jee 0 python pandas

我正面临熊猫的问题。输入数据是单列:

 MixedColumn    
-------------
 20_5, 20_5**1   
 20_7**9    
 20_4, 40_4, 15_4**2    
Run Code Online (Sandbox Code Playgroud)

我想拆分并将其转换为这样的内容:

Col1   Col2   
--------------
 20_5    1         
 20_5    1           
 20_7    9       
 20_4    2  
 40_4    2
 15_4    2
Run Code Online (Sandbox Code Playgroud)

该逻辑基于逗号(如果存在)拆分每个行项目(20_5、20_5)并将它们放置在同一列(Col1)的下一行。以及基于 **拆分每个行项目(**1)并将它们与单独列 (Col2) 中的各个值相关联。

对不起,如果这是一个菜鸟问题。任何提示肯定会帮助我。谢谢并祝大家假期愉快。

Erf*_*fan 5

首先分割上**获得Col2Series.str.splitexpand=True

然后我们使用DataFrame.explode为每个要创建的元素创建一个新行Col1

注意:这需要 pandas >= 0.25.0

df[['Col1', 'Col2']] = df['MixedColumn'].str.split('\*\*', expand=True)

df = df.assign(Col1=df['Col1'].str.split(', ')).explode('Col1').drop(columns='MixedColumn')

   Col1 Col2
0  20_5    1
0  20_5    1
1  20_7    9
2  20_4    2
2  40_4    2
2  15_4    2
Run Code Online (Sandbox Code Playgroud)