反转DataFrame列,但保留索引

4
请考虑以下内容:
In [214]: df = pd.DataFrame(index=range(4,8), data=[33,22,11,00])

In [215]: df
Out[215]: 
    0
4  33
5  22
6  11
7   0

我想要颠倒第一列的顺序,但保持当前索引的顺序,这样df看起来会是这样的:

4   0
5  11
6  22
7  33

我似乎找不到正确的reset_indexreindex等方法来实现这个目标。

2个回答

9

使用iloc和适当的切片。

df.iloc[::-1]

    0
7   0
6  11
5  22
4  33

为了保留索引,请使用iloc
df.iloc[:] = df.iloc[::-1].values

使用 numpy

pd.DataFrame(df.values[::-1], df.index, df.columns)

两者都产生

    0
4  33
5  22
6  11
7   0

0

你也可以将索引设置为临时变量,然后重新应用索引。

df = pd.DataFrame(index=range(4,8), data=[33,22,11,00])
idx=df.index.values
df.sort_values([0],inplace=True)
df.index=idx

虽然不是很聪明,但易于理解


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接