我有一个包含多个列的数据框,其中包含一个列表。我想把这个列表分成不同的列。我目前在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.
目前这是我的代码,但它只输出一个包含“None”值的数据帧。我不知道如何修复它,因为它似乎只是得到最后一列,而不是真正分裂列表。你知道吗
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())
我得到的结果是:
| 0
0| None
1| None
2| [2122,2324]
但是,如果我只关注1列(即值0),它就可以很好地分割列表。你知道吗
new_df = pd.DataFrame(df['value_0'].values.tolist())
非常感谢您的帮助
首先使用
pd.concat
和pd.Series
将列表展开为单独的列并附加到原始df,然后删除原始列输出
想法是用^{} 重塑值以移除} 重塑,排序列并设置默认列名称:
None
值,因此可以使用DataFrame
构造函数,然后用^{0.24+整数缺失值的解决方案:
相关问题 更多 >
编程相关推荐