基本上我想变平(可能不是好词)例如有数据框: 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
没有找到匹配的内容?试试慕课网站内搜索吧
添加回答
举报
0/150
提交
取消