连接两列中的 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
我的数据框如下所示:
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