【问题标题】:Reverse DataFrame Column, But Maintain the Index反转 DataFrame 列,但保持索引
【发布时间】:2017-01-21 10:18:25
【问题描述】:

考虑以下

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 等来实现这一点。

【问题讨论】:

    标签: python pandas


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      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
      

      没有那么聪明,但很容易理解

      【讨论】:

        猜你喜欢
        • 2020-11-02
        • 1970-01-01
        • 1970-01-01
        • 2021-07-11
        • 1970-01-01
        • 2017-05-20
        • 1970-01-01
        • 1970-01-01
        • 2021-01-17
        相关资源
        最近更新 更多