02
09
25
59
为了账号安全,请及时绑定邮箱和手机立即绑定

如何加宽数据框 - 熊猫

如何加宽数据框 - 熊猫

慕的地10843 2021-06-09 13:47:39
基本上我想变平(可能不是好词)例如有数据框:    A      B            C0   1  [1,2]      [1, 10]1   2  [2, 14]    [2, 18]我想获得以下输出:    A  B1   B2    B3   B40   1  1    2     1    101   2  2    14    2    18我试过了:print(pd.DataFrame(df.values.flatten().tolist(), columns=['%sG'%i for i in range(6)], index=df.index))但没什么好说的。希望你明白我的意思:)

1 回答

?
慕斯709654

TA贡献1840条经验 获得超5个赞

如果列表具有不同的长度,通用解决方案也适用:


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  B4

0  1   1   2   1  10

1  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  B4

0  1   1   2   1  10

1  2   2  14   2  18


查看完整回答
反对 回复 2021-06-22

添加回答

代码语言

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号