我有一个有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)
但我不能对多个新列进行同样的操作,将其分配到存在。或者是我的语法不对......
虽然我无法在一行中完成,但我通过添加来解决这个问题。
new_cols = ['c1', 'c3', 'c2','c6'...]
df_new_order = df.reindex(columns = new_cols)
虽然有60多列,有点繁琐,但你可以把它们按顺序复制,就可以了。现在看来很合理,你不能只把一个col索引的位置移到df的中间,而不考虑其他col的位置......