如何重置熊猫数据框的索引,将列插入到特定位置?

时间:2020-08-06 15:44:41

标签: python python-3.x pandas dataframe

如何对索引进行操作后保持列顺序?

>>> df = pd.DataFrame({'a' : [0,1], 'b' : [0,1], 'c' : [0,1]})
>>> df.columns
Index(['a', 'b', 'c'], dtype='object')
>>> df = df.set_index('c')
# some filtering operation
>>> df = df.reset_index()
>>> df.columns
Index(['c', 'a', 'b'], dtype='object')

重置索引后,列的顺序为['c','a','b'],而不是先前的['a','b','c'] 是否可以通过指定我要在何处插入列的方法来reset_index?

我知道我可以使用pd.reindex(column_names),但是我想知道是否有更快的方法

这将派上用场,因为当我打算对所述列执行过滤时,我经常使用某些列作为索引,并且需要在将结果写入.csv文件之前重置索引。列的顺序是固定的。

1 个答案:

答案 0 :(得分:1)

一种方法是将原始订单列存储在变量中,然后在重置索引后使用该变量进行赋值。看看下面的代码。

df = pd.DataFrame({'a' : [0,1], 'b' : [0,1], 'c' : [0,1]})
print('Before reset index:', df.columns)

col = df.columns   # assign columns

df = df.set_index('c')
df = df.reset_index()

# get same order columns
df = df[col]
print('\nAfter reset index:', df.columns)

有关输出,请参阅下面的快照。

enter image description here