Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/278.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 - Fatal编程技术网

Python 按行/列排序标签

Python 按行/列排序标签,python,pandas,Python,Pandas,假设我有一个数据帧: df = pandas.DataFrame(np.random.randn(5,3), columns = ['A','B','C'], index = ['r0', 'r1', 'r2', 'r3', 'r4') A B C r0 -0.830305 -0.395235 0.589917 r1 -1.378534 -0.484204 -1.068907 r2 -0.407720 1.922942 -1.120

假设我有一个数据帧:

df = pandas.DataFrame(np.random.randn(5,3),
columns = ['A','B','C'], 
index   = ['r0', 'r1', 'r2', 'r3', 'r4')

          A         B         C
r0 -0.830305 -0.395235  0.589917
r1 -1.378534 -0.484204 -1.068907
r2 -0.407720  1.922942 -1.120012
r3  1.075495  0.968913  1.509079
r4 -2.858858  1.018327 -0.660672
我想得到一个新的数据框,其中,对于每一行,我有按值排序的列名列表

对于上述示例,按列按降序排序的结果为:

    0  1  2
r0  C  B  A
r1  A  B  C
r2  B  A  C
r3  C  A  B
r4  B  C  A
有没有“熊猫/裸体”的方法可以做到这一点

一种方法是对每行使用Series方法(并获取索引):

要分解它:

In [21]: row = df.ix[0]

In [22]: row
Out[22]:
A    0.213505
B   -0.661328
C    1.489605
Name: r0

In [23]: row.order(ascending=False)
Out[23]:
C    1.489605
A    0.213505
B   -0.661328
Name: r0

In [24]: row.order(ascending=False).index
Out[24]: Index([C, A, B], dtype=object)

我想我比我更喜欢这个。
在[12]
中返回以下内容:
/opt/Python-2.7.3-x86_64/lib/python2.7/site packages/pandas-0.10.1-py2.7-linux-x86_64.egg/pandas/core/frame.py:3576:FutureWarning with-In-place=True将从pandas 0.11开始“从pandas 0.11开始”不返回任何值,未来警告)
这是什么意思?您编写的代码是否与
0.11
以后的版本兼容?@user815423426它在0.11版本上工作(没有警告)。至于您为什么会看到它:好问题(因为我们不调用重命名)。。。当使用inplace=True调用许多函数时,它们将返回None(而不是输出)。因为我们没有使用inplace=True,所以这里没有问题。
In [21]: row = df.ix[0]

In [22]: row
Out[22]:
A    0.213505
B   -0.661328
C    1.489605
Name: r0

In [23]: row.order(ascending=False)
Out[23]:
C    1.489605
A    0.213505
B   -0.661328
Name: r0

In [24]: row.order(ascending=False).index
Out[24]: Index([C, A, B], dtype=object)