[英]how to convert a list column in pandas dataframe?
I have a pandas dataframe in this format: 我有以下格式的熊猫数据框:
idpso pso
0 [1.0290574795443606, 20000, 3.515564441680908] [0.041787490144988726, 20000, 11.214858293533325]
But I wanna to split each array into cells. 但是我想将每个数组拆分为单元格。 Is there any way to do this?
有什么办法吗?
You can using stack
with apply
您可以在
apply
使用stack
df=pd.DataFrame({'v1':[[1,2]],'v2':[[2,3]]})
df.stack().apply(pd.Series)
Out[638]:
0 1
0 v1 1 2
v2 2 3
Use np.column_stack
使用
np.column_stack
Consider the sample data frame 考虑样本数据框
df = pd.DataFrame(dict(
idpso=[[1.0290, 20000, 3.5155]] * 3,
pso=[[0.0417, 20000, 11.2148]] * 3
))
df
idpso pso
0 [1.029, 20000, 3.5155] [0.0417, 20000, 11.2148]
1 [1.029, 20000, 3.5155] [0.0417, 20000, 11.2148]
2 [1.029, 20000, 3.5155] [0.0417, 20000, 11.2148]
pd.DataFrame(
np.column_stack(df.values.T.tolist())
)
0 1 2 3 4 5
0 1.029 20000.0 3.5155 0.0417 20000.0 11.2148
1 1.029 20000.0 3.5155 0.0417 20000.0 11.2148
2 1.029 20000.0 3.5155 0.0417 20000.0 11.2148
pd.concat
pd.concat({
k: pd.DataFrame(v.tolist())
for k, v in df.items()
}, axis=1)
idpso pso
0 1 2 0 1 2
0 1.029 20000 3.5155 0.0417 20000 11.2148
1 1.029 20000 3.5155 0.0417 20000 11.2148
2 1.029 20000 3.5155 0.0417 20000 11.2148
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.