我有一个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时,它什么也没做。我猜是因为名字匹配。
有人可以帮助我吗?预先感谢!