Pandas只重新订购一个特定的

2024-04-25 20:36:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个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时,它什么也没做。我猜是因为名字匹配

有人能帮我吗?提前谢谢


Tags: columns文件the项目订单dataframedfnew