连接两列中的 2 个逗号分隔值 pandas

Concatenate 2 comma separated values in two columns pandas

我的数据框如下所示:

Col1    Col2       Col3     Col4
1,2,3   10,11,12    ABC     A1B1
4       13          DEF     TEST
5,6     14,15       XYZ     C1D1

我的输出应该是这样的:(第一个逗号分隔值与另一列中的第一个逗号分隔值一起创建行并将计数作为列提供)

Col1    Col2    Col3    Col4    Count
1       10      ABC     A1B1    1
2       11      ABC     A1B1    2
3       12      ABC     A1B1    3
4       13      DEF     TEST    1
5       14      XYZ     C1D1    1
6       15      XYZ     C1D1    2

我曾尝试使用 explode 函数,但它会创建包含多个不同组合的列行。

已编辑: 我试过的代码:

df.Col1 = df.Col1.str.split(',')
df = df.explode('Col1').reset_index(drop=True)

但它创建了 Col1 与其余列的多种组合。

期待您的帮助。

你可以试试:

#spliting 'Col1' and 'Col2' column values
df['Col1']=df['Col1'].str.split(',')
df['Col2']=df['Col2'].str.split(',')
df=df.agg(pd.Series.explode)
#OR
#df=df.apply(pd.Series.explode)
#Finally create a count column:
df['Count']=df.groupby(['Col3','Col4']).cumcount()+1
#If needed reset the index:
df=df.reset_index(drop=True)

df 的输出:

    Col1    Col2    Col3    Col4    Count
0   1       10      ABC     A1B1    1
0   2       11      ABC     A1B1    2
0   3       12      ABC     A1B1    3
1   4       13      DEF     TEST    1
2   5       14      XYZ     C1D1    1
2   6       15      XYZ     C1D1    2