Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/303.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.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 如何使用pandas在没有列名的情况下进行排序_Python_Sorting_Pandas - Fatal编程技术网

Python 如何使用pandas在没有列名的情况下进行排序

Python 如何使用pandas在没有列名的情况下进行排序,python,sorting,pandas,Python,Sorting,Pandas,我的数据是: import pandas A=pandas.read_csv(r'D:\AUL_prediction\Merge_file\plasmid',sep=' ',header=None, engine='python') print A 结果是: 0 1 2 3 0 plasmid.gb NC021289.1 75

我的数据是:

import pandas
A=pandas.read_csv(r'D:\AUL_prediction\Merge_file\plasmid',sep='   ',header=None, engine='python')
print A
结果是:

                 0     1                 2            3  
                 0     plasmid.gb        NC021289.1    75   
                 1     plasmid.gb        NC016815.1   763   
                 2     plasmid.gb      NZCP011480.1   102   
                 3     plasmid.gb        NC017324.1  1278   
                 4     plasmid.gb        NC007488.2    32   
                 5     plasmid.gb        NC019848.2   632   
                 6     plasmid.gb      NZCP007644.1   208   
                 7     plasmid.gb        NC007336.1    46   
                 8     plasmid.gb      NZCP012748.1   402   
                 9     plasmid.gb      NZCP011248.1   353   
我想根据A[3]和A[2]对这些数据进行排序,有人知道怎么做吗?我尝试对值进行排序,但是,它无法识别列名“0”或“1”

请首先使用:

f = A.columns.values.tolist()
查看列的实际名称是什么。 然后您可以尝试:

A.sort_values(by=f[:2])
如果按列名排序,请记住2L是一个长整型,因此只需执行以下操作:

A.sort_values(by=[2L])
首先是:

f = A.columns.values.tolist()
查看列的实际名称是什么。 然后您可以尝试:

A.sort_values(by=f[:2])
如果按列名排序,请记住2L是一个长整型,因此只需执行以下操作:

A.sort_values(by=[2L])

这个问题由来已久,但我刚刚遇到了这个问题

如果没有列标题,只需给出值,并在
df.sort\u value
中避免关键字
by
。解决方案:

df = df.sort_values(df.columns[i])

在你的例子中,df是
A
,而
i
是列的索引。

这个问题很老了,但我刚刚遇到了这个问题

如果没有列标题,只需给出值,并在
df.sort\u value
中避免关键字
by
。解决方案:

df = df.sort_values(df.columns[i])

在你的例子中,df是
A
,而
i
是列的索引。

我不知道你为什么坚持不使用标题

如果原始数据是这样的,那么这不是问题

您可以将标题分配给数据帧,这对程序员来说更具可读性

import pandas as pd
from io import StringIO

data = """
plasmid.gb,NC021289.1,75   
plasmid.gb,NC016815.1,763   
plasmid.gb,NZCP011480.1,102   
plasmid.gb,NC017324.1,1278   
plasmid.gb,NC007488.2,32   
plasmid.gb,NC019848.2,632   
plasmid.gb,NZCP007644.1,208   
plasmid.gb,NC007336.1,46   
plasmid.gb,NZCP012748.1,402   
plasmid.gb,NZCP011248.1,3
"""

df = pd.read_csv(StringIO(data), sep=',', header=None, engine='python')
print('BEFORE\n', df)
df.columns = ['file', 'event-id', 'value']
print('\nAFTER\n', df.sort_values(['value', 'event-id'], ascending=[False, True]))
输出

BEFORE
             0             1     2
0  plasmid.gb    NC021289.1    75
1  plasmid.gb    NC016815.1   763
2  plasmid.gb  NZCP011480.1   102
3  plasmid.gb    NC017324.1  1278
4  plasmid.gb    NC007488.2    32
5  plasmid.gb    NC019848.2   632
6  plasmid.gb  NZCP007644.1   208
7  plasmid.gb    NC007336.1    46
8  plasmid.gb  NZCP012748.1   402
9  plasmid.gb  NZCP011248.1     3

AFTER
          file      event-id  value
3  plasmid.gb    NC017324.1   1278
1  plasmid.gb    NC016815.1    763
5  plasmid.gb    NC019848.2    632
8  plasmid.gb  NZCP012748.1    402
6  plasmid.gb  NZCP007644.1    208
2  plasmid.gb  NZCP011480.1    102
0  plasmid.gb    NC021289.1     75
7  plasmid.gb    NC007336.1     46
4  plasmid.gb    NC007488.2     32
9  plasmid.gb  NZCP011248.1      3

我不知道你为什么坚持不使用标题

如果原始数据是这样的,那么这不是问题

您可以将标题分配给数据帧,这对程序员来说更具可读性

import pandas as pd
from io import StringIO

data = """
plasmid.gb,NC021289.1,75   
plasmid.gb,NC016815.1,763   
plasmid.gb,NZCP011480.1,102   
plasmid.gb,NC017324.1,1278   
plasmid.gb,NC007488.2,32   
plasmid.gb,NC019848.2,632   
plasmid.gb,NZCP007644.1,208   
plasmid.gb,NC007336.1,46   
plasmid.gb,NZCP012748.1,402   
plasmid.gb,NZCP011248.1,3
"""

df = pd.read_csv(StringIO(data), sep=',', header=None, engine='python')
print('BEFORE\n', df)
df.columns = ['file', 'event-id', 'value']
print('\nAFTER\n', df.sort_values(['value', 'event-id'], ascending=[False, True]))
输出

BEFORE
             0             1     2
0  plasmid.gb    NC021289.1    75
1  plasmid.gb    NC016815.1   763
2  plasmid.gb  NZCP011480.1   102
3  plasmid.gb    NC017324.1  1278
4  plasmid.gb    NC007488.2    32
5  plasmid.gb    NC019848.2   632
6  plasmid.gb  NZCP007644.1   208
7  plasmid.gb    NC007336.1    46
8  plasmid.gb  NZCP012748.1   402
9  plasmid.gb  NZCP011248.1     3

AFTER
          file      event-id  value
3  plasmid.gb    NC017324.1   1278
1  plasmid.gb    NC016815.1    763
5  plasmid.gb    NC019848.2    632
8  plasmid.gb  NZCP012748.1    402
6  plasmid.gb  NZCP007644.1    208
2  plasmid.gb  NZCP011480.1    102
0  plasmid.gb    NC021289.1     75
7  plasmid.gb    NC007336.1     46
4  plasmid.gb    NC007488.2     32
9  plasmid.gb  NZCP011248.1      3

它返回[0L,1L,2L,3L],当我使用命令时,A.sort_值(by=['2L'])仍然会遇到一个键错误:“2L”@zipaIt returens[0L,1L,2L,3L],当我使用命令时,A.sort_值(by=['2L'])仍然会遇到一个关键错误:“2L”@zipaThanks,我卡住了,因为它是以字符串形式传递索引的(IDK why)。使用
by=
(Python3):
pd.DataFrame(list)。sort_值(by=0)
谢谢,我卡住了,因为我将索引作为字符串传递(IDK why)。使用
by=
(Python 3):
pd.DataFrame(list.sort\u值(by=0)