Python 如何在数据帧中的列的单元格中卸载数组2x2?

Python 如何在数据帧中的列的单元格中卸载数组2x2?,python,pandas,Python,Pandas,我有一个DataFrame,在它的一列中,每个单元格中有2x2np.array。我试图提取这些数组以与原始数据帧合并 假设我有以下df: df=pd.DataFrame({'A':[101, 202],'B':[ [[1,2], [3,4]] ,[[5,6], [7,8]] ] }) 我需要把这个df转换成这样的东西: A, B_1, B_2 101, 1, 2 101, 3, 4 202, 5, 6 202, 7, 8 关于如何实现这一点,有什么建议吗?我看到了关于如何取消列的其他建议,但

我有一个DataFrame,在它的一列中,每个单元格中有2x2np.array。我试图提取这些数组以与原始数据帧合并

假设我有以下df:

df=pd.DataFrame({'A':[101, 202],'B':[ [[1,2], [3,4]] ,[[5,6], [7,8]] ] })
我需要把这个df转换成这样的东西:

A, B_1, B_2
101, 1, 2
101, 3, 4
202, 5, 6
202, 7, 8

关于如何实现这一点,有什么建议吗?我看到了关于如何取消列的其他建议,但它只适用于一维数组,不适用于我的情况。

对于
B
列中的数据帧,使用列表理解和
concat

dcomp = {k:pd.DataFrame(v) for k, v in df.pop('B').items()}
df1 = (pd.concat(dcomp)
         .reset_index(level=1, drop=True)
         .rename(columns=lambda x: x+1)
         .add_prefix('B_'))

df = df.join(df1).reset_index(drop=True)
print (df)
     A  B_1  B_2
0  101    1    2
1  101    3    4
2  202    5    6
3  202    7    8
而且

应用(pd.Series)
-速度很慢,不要使用。
df  =df.set_index('A').B.apply(pd.Series).stack().reset_index().rename(columns={0:'B'})
df1 =pd.DataFrame(df.B.values.tolist()).add_prefix('B_')
pd.concat([df['A'], df1], axis = 1)