我有一个df,其中包含如下表中的一些列。
<表类>
B
C
tbody><<tr>1、3、5 id_1 b2、5、7 id_2 c8、13、18 id_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