熊猫只对特定行重新排序

时间:2019-07-08 22:09:08

标签: python pandas dataframe

我有一个Dataframe文件,我只想在其中切换第三行的列顺序,而其他行保持不变。

在某些情况下,我必须为我的项目切换订单,但这是一个可能没有实际意义的示例。

假设数据集是

df = pd.DataFrame({'A': [0, 1, 2, 3, 4],
                'B': [5, 6, 7, 8, 9],
                'C': ['a', 'b', 'c', 'd', 'e']})
df

出[1]:

       A  B  C
    0  0  5  a
    1  1  6  b
    2  2  7  c
    3  3  8  d
    4  4  9  e

我想要输出:

       A  B  C
    0  0  5  a
    1  1  6  b
    2  **7  2**  c
    3  3  8  d
    4  4  9  e

我该怎么做?

我尝试过:

    new_order =  [1,  0,  2] # specify new order of the third row
    i = 2 # specify row number
    df.iloc[i] = df[df.columns[new_order]].loc[i] # reorder the third row only and assign new values to df

我从右侧的输出中观察到,列按我的意愿进行了重新排序:

    df[df.columns[new_order]].loc[i]
Out[2]: 
B    7
A    2
C    c
Name: 2, dtype: object

但是当再次分配给df时,它什么也没做。我猜是因为名字匹配。

有人可以帮助我吗?预先感谢!

0 个答案:

没有答案