【发布时间】:2019-10-21 16:34:07
【问题描述】:
我有一个包含几列的数据框,其中包含一个列表。我想将此列表拆分为不同的列。我目前在 stackoverflow 中找到了this 问题,但它似乎只是将列表拆分为 1 列,我想将其应用于列表中包含不相等数量的对象的多个列。
我的 df 看起来像这样:
ID | value_0 | value_1 | value_2 | value_3 | value_4
0 1001|[1001,1002]| None | None | None | None
1 1010|[1010,2001]|[2526,1000]| None | None | None
2 1100|[1234,5678]|[9101,1121]|[3141,5161]|[1718,1920]|[2122,2324]
我想把它改成:
ID | 0 | 1 | 2 | 3 | 4
0 1001|1001|1002| None | None | None
1 1010|1010|2001| 2526 | 1000 | None
2 1100|1234|5678| 9101 | 1121 | 3141 ....etc.
目前这是我的代码,但它只输出一个包含“无”值的数据帧。我不确定如何解决它,因为它似乎只获取最后一列,并没有真正拆分列表。
length = len(list(df.columns.values))-1
for i in range(length):
temp = "value_" + str(i)
x = df[temp]
new_df = pd.DataFrame(df[temp].values.tolist())
我得到的new_df的结果是:
| 0
0| None
1| None
2| [2122,2324]
但是,如果我只关注 1 列(即 value_0),它会很好地拆分列表。
new_df = pd.DataFrame(df['value_0'].values.tolist())
非常感谢任何帮助
【问题讨论】: