将具有不同长度的列表的 Pandas 列拆分为多列

问题描述 投票:0回答:1

我有一个 Pandas DataFrame,看起来像:

ID  result
1   [.1,.5]
2   [.4,-.2,-.3,.1,0]
3   [0,.1,.6]

如何将这一列列表分成两列?

想要的结果:

ID  result_1 result_2 result_3 result_4 result_5
1   .1       .5       NaN      NaN      NaN
2   .4       -.2      -.3      .1       0
3   0        .1       .6       NaN      NaN

我深入研究了一下,发现了这一点:将 Pandas 的列表列拆分为多列

但这似乎只适用于具有固定数量元素的列表。

提前非常感谢您。

python pandas
1个回答
1
投票

您可以按照链接帖子中的建议执行此操作。

import pandas as pd

# your example code
data = {"ID": [1, 2, 3], "result": [[0.1, 0.5], [0.4, -0.2, -0.3, 0.1, 0], [0, 0.1, 0.6]]}
df = pd.DataFrame(data)
print(df)


# answer
out = df[['ID']].join(
    pd.DataFrame(df['result'].tolist())
    .rename(columns=lambda x: f'result_{x + 1}')
)
print(out)
© www.soinside.com 2019 - 2024. All rights reserved.