猿问

如何加宽数据框 - 熊猫

基本上我想变平(可能不是好词)


例如有数据框:


    A      B            C

0   1  [1,2]      [1, 10]

1   2  [2, 14]    [2, 18]

我想获得以下输出:


    A  B1   B2    B3   B4

0   1  1    2     1    10

1   2  2    14    2    18

我试过了:


print(pd.DataFrame(df.values.flatten().tolist(), columns=['%sG'%i for i in range(6)], index=df.index))

但没什么好说的。


希望你明白我的意思:)


慕的地10843
浏览 121回答 1
1回答

慕斯709654

如果列表具有不同的长度,通用解决方案也适用:df1 = pd.DataFrame(df['B'].values.tolist())df2 = pd.DataFrame(df['C'].values.tolist())df = pd.concat([df[['A']], df1, df2], axis=1)df.columns = [df.columns[0]] + [f'B{i+1}' for i in range(len(df.columns)-1)]print (df)   A  B1  B2  B3  B40  1   1   2   1  101  2   2  14   2  18如果尺寸相同:df1 = pd.DataFrame(np.array(df[['B','C']].values.tolist()).reshape(len(df),-1))df1.columns = [f'B{i+1}' for i in range(len(df1.columns))]df1.insert(0, 'A', df['A'])print (df1)   A  B1  B2  B3  B40  1   1   2   1  101  2   2  14   2  18
随时随地看视频慕课网APP

相关分类

Python
我要回答