在pandas中,我可以在特定的列索引位置将一列划为多列,或者批量移动结果列的位置吗?

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

我有一个有60多列的数据框。其中一列(在索引10处)需要在'_'字符上分界为6个新列。我是这样分配新列的。

df[['col1','col2','col2','col3','col4','col5','col6']] = df['original_col'].str.split('_',expand=True)

这样做是可行的,但会把新的列加到数据框的最后。有没有什么办法可以将这些新列分配在'original_col'之后,或者有什么办法可以将这6个新单元格的索引批量移动到df的中间位置?

我知道我可以使用'original_col'将新的列插入到一个位置。

df.insert(loc, column, value)

但我不能对多个新列进行同样的操作,将其分配到存在。或者是我的语法不对......

python pandas dataframe
1个回答
0
投票

虽然我无法在一行中完成,但我通过添加来解决这个问题。

new_cols = ['c1', 'c3', 'c2','c6'...]
df_new_order = df.reindex(columns = new_cols)

虽然有60多列,有点繁琐,但你可以把它们按顺序复制,就可以了。现在看来很合理,你不能只把一个col索引的位置移到df的中间,而不考虑其他col的位置......

© www.soinside.com 2019 - 2024. All rights reserved.