Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何反转列值并保持列标题不变_Python_Pandas_Numpy_Dataframe - Fatal编程技术网

Python 如何反转列值并保持列标题不变

Python 如何反转列值并保持列标题不变,python,pandas,numpy,dataframe,Python,Pandas,Numpy,Dataframe,假设我有一个数据帧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

假设我有一个数据帧
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
我尝试过对列索引进行排序。sort_index(1,升序=False),但这会改变列标题(显然),而且我不知道我的列是否以排序方式开始。

方法1
重建

pd.DataFrame(df.values[:, ::-1], df.index, df.columns)
df[:] = df.values[:, ::-1]
df
方法2
赋值

pd.DataFrame(df.values[:, ::-1], df.index, df.columns)
df[:] = df.values[:, ::-1]
df
两者都给出了

或者您可以将列反转:

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
另外,使用沿水平方向翻转值的:

pd.DataFrame(np.fliplr(df.values), columns=df.columns, index=df.index)

这个答案太棒了!为了获得与以前相同的顺序,我需要
df.reindex\u轴(反转(df.columns))
或类似的东西。@piRSquared是的,
reindex\u轴
可能是更好的解决方案。