从两个列中创建一个新的df,其中一个列包含多个值



我有一个df,其中包含如下表中的一些列。

<表类> B C tbody><<tr>1、3、5id_1b2、5、7id_2c8、13、18id_3

我认为这可以解决你的问题:

import pandas as pd
data={
'A': ['a', 'b','c'],
'B': [[1,3,5], [2,5,7],[8,13,18]],
'C':['id_1','id_2','id_3']
}
data_frame=pd.DataFrame(data=data)
df_result=data_frame.apply(lambda r: pd.Series({'id_col':r['C'],
'val_col':r['B'],
}),axis=1).explode('val_col')
print(df_result)

让我们试试:

df.assign(B=df['B'].str.split(',')).explode('B')[['B', 'C']]

输出:

B     C
0   1  id_1
0   3  id_1
0   5  id_1
1   2  id_2
1   5  id_2
1   7  id_2
2   8  id_3
2  13  id_3
2  18  id_3

相关内容

最新更新