首页 > 解决方案 > 根据指定列对其他列进行排序

问题描述

我有一个 .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 列排序示例,但它不适用于 3 列。有人可以帮我弄这个吗?

标签: pythonsortingmultiple-columnscolumnsorting

解决方案


我已将以下内容保存到名为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

推荐阅读