假设我有一个数据框df
df = pd.DataFrame([[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]],
columns=['A', 'B', 'C', 'D', 'E'])
看起来像这样
A B C D E
0 1 2 3 4 5
1 6 7 8 9 10
如何反转列值的顺序,但将列标题保留为A,B,C,D,E?
我希望它看起来像
A B C D E
0 5 4 3 2 1
1 10 9 8 7 6
我已经尝试对列索引df.sort_index(1, ascending=False)
进行排序,但这会更改列标题(显然),而且,我也不知道我的列是否以排序的方式开始。
答案 0 :(得分:6)
或者您可以撤消列:
df.columns = reversed(df.columns)
df.sortlevel(axis=1)
# A B C D E
#0 5 4 3 2 1
#1 10 9 8 7 6
答案 1 :(得分:3)
方法1
重建
pd.DataFrame(df.values[:, ::-1], df.index, df.columns)
方法2
指定值
df[:] = df.values[:, ::-1]
df
答案 2 :(得分:3)