我有一个列表作为列之一的熊猫数据框。我想将该列表扩展为 4 个单独的列。
df=pd.DataFrame({'A':[1,2],'B':[[1,2,3,4],[1,2,5,8]]})
df
Out[458]:
A B
0 1 [1, 2, 3, 4]
1 2 [1, 2, 5, 8]
我希望是这样的:
A C_1 C_2 C_3 C_4
0 1 1 2 3 4
1 2 1 2 5 8
答案 0 :(得分:1)
如果所有列表的长度相同,您可以这样做:
df[['A']].join(pd.DataFrame(df['B'].values.tolist(),
index=df.index)
.add_prefix('C_')
)
输出:
A C_0 C_1
0 1 1 2
1 2 1 2
答案 1 :(得分:0)
您还可以使用 Pandas 字符串方法来提取数据,假设列 B
中每一行的长度相同:
mapping ={f"C_{num+1}" : df.B.str[num]
for num in range(df.B.str.len()[0])
}
df.drop(columns="B").assign(**mapping)
A C_1 C_2 C_3 C_4
0 1 1 2 3 4
1 2 1 2 5 8