python按正确顺序对文件中以数字开头的行进行排序
我有一个文件,看起来像:python按正确顺序对文件中以数字开头的行进行排序,python,python-3.x,line,Python,Python 3.x,Line,我有一个文件,看起来像: 11 -7.072985E-17 5.570644E-18 2.763979E-17 12 -6.420375E-17 -5.456010E-19 2.229937E-17 9 -8.360102E-17 1.172390E-17 2.492073E-17 10 -1.046834E-16 1.106907E-17 1.840354E-17 17 2.000000E-01 1.172390E-17 2.492073E-17 18 2.000000E
11 -7.072985E-17 5.570644E-18 2.763979E-17
12 -6.420375E-17 -5.456010E-19 2.229937E-17
9 -8.360102E-17 1.172390E-17 2.492073E-17
10 -1.046834E-16 1.106907E-17 1.840354E-17
17 2.000000E-01 1.172390E-17 2.492073E-17
18 2.000000E-01 1.106907E-17 1.840354E-17
19 2.000000E-01 5.570644E-18 2.763979E-17
20 2.000000E-01 -5.456010E-19 2.229937E-17
2 0.000000E+00 0.000000E+00 0.000000E+00
6 2.000000E-01 0.000000E+00 0.000000E+00
4 0.000000E+00 0.000000E+00 0.000000E+00
1 0.000000E+00 0.000000E+00 0.000000E+00
13 -8.360102E-17 1.172390E-17 2.492073E-17
14 -1.046834E-16 1.106907E-17 1.840354E-17
15 -7.072985E-17 5.570644E-18 2.763979E-17
16 -6.420375E-17 -5.456010E-19 2.229937E-17
3 -0.000000E+00 -0.000000E+00 -0.000000E+00
5 2.000000E-01 -0.000000E+00 -0.000000E+00
7 2.000000E-01 -0.000000E+00 -0.000000E+00
8 2.000000E-01 -0.000000E+00 -0.000000E+00
21 2.000000E-01 1.172390E-17 2.492073E-17
22 2.000000E-01 1.106907E-17 1.840354E-17
我如何对这些行进行排序,使其改变顺序,从而生成以1,2…开头的行,。。。。看起来像:
1 0.000000E+00 0.000000E+00 0.000000E+00
2 0.000000E+00 0.000000E+00 0.000000E+00
.....
21 2.000000E-01 1.172390E-17 2.492073E-17
我要求文件类型的原因是,代码在某种程度上取决于您如何读取它。但是如果我只是按照上面给出的数据输入列表,那么下面的代码将按照您的要求进行排序
将熊猫作为pd导入
dat=['11','-7.072985E-17','5.570644E-18','2.763979E-17'],
[12'、'-6.420375E-17'、'-5.456010 E-19'、'2.229937E-17'],
[9'、'-8.360102E-17'、'1.172390E-17'、'2.492073E-17'],
[10'、'-1.046834E-16'、'1.106907E-17'、'1.840354E-17'],
[17','200000E-01','1.172390E-17','2.492073E-17'],
[18','200000E-01','1.106907E-17','1.840354E-17'],
[19','200000E-01','5.570644E-18','2.763979E-17'],
[20','200000E-01','-5.456010 E-19','2.229937E-17'],
['2','0.000000E+00','0.000000E+00','0.000000E+00'],
['6','200000E-01','000000E+00','000000E+00'],
['4','0.000000E+00','0.000000E+00','0.000000E+00'],
['1','0.000000E+00','0.000000E+00','0.000000E+00'],
[13'、'-8.360102E-17'、'1.172390E-17'、'2.492073E-17'],
[14'、'-1.046834E-16'、'1.106907E-17'、'1.840354E-17'],
[15'、'-7.072985E-17'、'5.570644E-18'、'2.763979E-17'],
[16'、'-6.420375E-17'、'-5.456010 E-19'、'2.229937E-17'],
['3'、'-0.000000E+00'、'-0.000000E+00'、'-0.000000E+00'],
['5','200000E-01','-0.000000E+00','-0.000000E+00'],
['7'、'200000E-01'、'-0.000000E+00'、'-0.000000E+00'],
['8'、'200000E-01'、'-0.000000E+00'、'-0.000000E+00'],
[21','200000E-01','1.172390E-17','2.492073E-17'],
['22','200000E-01','1.106907E-17','1.840354E-17']
df=pd.数据帧(dat)
df[0]=df[0].aType(int)
df=df.sort_值(按=0)
打印(df)
我就是这样将数据文件导入panda的:
dat=pd.read_表('file.dat'))
这是我在控制台上打印dat时得到的结果:
11 -3.948718E+01 1.949635E-15 1.410256E+01
0 12 -3.948718E+01 -6.501868E-17 1.410256E+01
1 9 -3.948718E+01 -1.410256E+01 3.356932E-15
2 10 -3.948718E+01 -1.410256E+01 -2.664535E-15
3 17 3.948718E+01 -1.410256E+01 -8.127297E-16
4 18 3.948718E+01 -1.410256E+01 0.000000E+00
5 19 3.948718E+01 1.827238E-16 1.410256E+01
6 20 3.948718E+01 1.155508E-15 1.410256E+01
7 2 -1.974359E+01 -7.051281E+00 -7.051281E+00
8 6 1.974359E+01 -7.051281E+00 -7.051281E+00
9 4 -1.974359E+01 7.051281E+00 -7.051281E+00
10 1 -1.974359E+01 -7.051281E+00 7.051281E+00
11 13 -3.948718E+01 1.410256E+01 4.476929E-15
12 14 -3.948718E+01 1.410256E+01 -2.664535E-15
13 15 -3.948718E+01 -8.148796E-18 -1.410256E+01
14 16 -3.948718E+01 -3.394488E-15 -1.410256E+01
15 3 -1.974359E+01 7.051281E+00 7.051281E+00
16 5 1.974359E+01 -7.051281E+00 7.051281E+00
17 7 1.974359E+01 7.051281E+00 7.051281E+00
18 8 1.974359E+01 7.051281E+00 -7.051281E+00
19 21 3.948718E+01 1.410256E+01 -1.777104E-15
20 22 3.948718E+01 1.410256E+01 1.776357E-15
21 23 3.948718E+01 7.707988E-16 -1.410256E+01
22 24 3.948718E+01 1.244052E-15 -1.410256E+01
23 25 -2.770623E-15 -1.410256E+01 -1.410256E+01
24 26 -4.023945E-15 -1.410256E+01 -1.410256E+01
25 27 -1.857338E-15 -1.410256E+01 1.410256E+01
26 28 -1.539070E-16 -1.410256E+01 1.410256E+01
27 29 9.707337E-16 1.410256E+01 -1.410256E+01
28 30 1.464331E-15 1.410256E+01 -1.410256E+01
29 31 1.440271E-14 1.410256E+01 1.410256E+01
30 32 -4.891681E-17 1.410256E+01 1.410256E+01
31 33 -7.897437E+01 -2.161541E-15 1.056976E-15
32 34 -7.897437E+01 1.371012E-15 2.697062E-15
33 35 -7.897437E+01 -7.295245E-16 1.776357E-15
34 36 -7.897437E+01 6.085350E-16 0.000000E+00
35 37 7.897437E+01 9.540498E-16 -7.105427E-15
36 38 7.897437E+01 -2.194593E-15 -1.776357E-15
37 39 7.897437E+01 4.515291E-15 -2.437956E-15
38 40 7.897437E+01 4.610022E-16 -5.525260E-15
39 41 -1.897793E-14 -2.820513E+01 -8.599718E-16
40 42 -1.879454E-15 -2.820513E+01 0.000000E+00
41 43 1.624346E-14 -2.820513E+01 7.492733E-15
42 44 1.469293E-15 -2.820513E+01 1.776357E-15
43 45 2.232466E-14 2.820513E+01 -2.357996E-15
44 46 -2.967245E-15 2.820513E+01 3.552714E-15
45 47 -1.648585E-15 2.820513E+01 8.332369E-15
46 48 -2.305978E-15 2.820513E+01 -1.776357E-15
47 49 -2.311771E-15 -3.830187E-16 -2.820513E+01
48 50 -5.195924E-15 -7.095857E-15 -2.820513E+01
49 51 2.040643E-14 -6.509591E-15 -2.820513E+01
50 52 -2.319451E-14 -1.946982E-15 -2.820513E+01
51 53 9.340751E-15 2.214389E-16 2.820513E+01
52 54 -1.162885E-14 -9.364264E-16 2.820513E+01
53 55 1.161707E-14 6.326350E-15 2.820513E+01
54 56 1.477891E-14 4.364906E-16 2.820513E+01
文件格式是什么?逗号分隔文件(.csv)?它是一个文本文件。。现在我正在尝试使用pandas sort.value()谢谢你,我以前的错误是因为分隔符,我必须指定df=pd.read_table('/file.dat',delim_whitespace=True,header=None)。你的代码后来起作用了。谢谢,谢谢