反向DataFrame列,但保持索引

时间:2017-01-21 01:14:45

标签: python pandas

考虑以下

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 个答案:

答案 0 :(得分:6)

使用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

答案 1 :(得分: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

不那么聪明但容易理解