根据指定的列对其他列进行排序

时间:2018-07-12 23:52:55

标签: python sorting multiple-columns columnsorting

我有一个.dat文件,其中三列用空格隔开[下面显示的示例,但在我的情况下没有列名],我需要根据相列对其他列进行排序,该列从最小排序达到最大。

例如,

Time    Phase    Mag 
t1      0.1      m1 
t2      0.0      m2
t3      0.2      m3
t4      0.4      m4
t5      0.3      m5

然后对这三列进行排序:

t2      0.0       m2
t1      0.1       m1 
t3      0.2       m3
t5      0.3       m5
t4      0.4       m4

我找到了一个有关2列数据2 column sorting example的示例,但不适用于3列。有人可以帮我弄这个吗?

1 个答案:

答案 0 :(得分:0)

我已将以下内容保存到名为example.dat的文件中

Time    Phase    Mag 
t1      0.1      m1 
t2      0.0      m2
t3      0.2      m3
t4      0.4      m4
t5      0.3      m5

下面的代码应该可以完成工作。

import pandas as pd

df = pd.read_csv("example.dat",delim_whitespace=True) # read the file with whitespaces as the delimiter
df.sort_values("Phase") # sort on the column "Phase"

输出:

    Time Phase  Mag
1   t2   0.0    m2
0   t1   0.1    m1
2   t3   0.2    m3
4   t5   0.3    m5
3   t4   0.4    m4