📜  按列值对 Pandas 数据帧排序 - Python (1)

📅  最后修改于: 2023-12-03 15:39:48.270000             🧑  作者: Mango

按列值对 Pandas 数据帧排序 - Python

在 Pandas 中,我们可以很容易地对数据帧进行排序,使用 sort_values 方法。通过这种方法,我们可以按照一个或多个列的值对数据进行排序。

按一个列值排序

要按一个列值对数据帧进行排序,我们只需要将要排序的列名传递给 sort_values 方法即可。

import pandas as pd

data = {
    'name': ['Tom', 'Jerry', 'Spike', 'Tyke'],
    'age': [2, 3, 1, 4],
    'score': [95, 80, 70, 90]
}

df = pd.DataFrame(data)

# 按年龄升序排序
df_sorted = df.sort_values('age')

print(df_sorted)

输出结果:

    name  age  score
2  Spike    1     70
0    Tom    2     95
1  Jerry    3     80
3   Tyke    4     90
按多个列值排序

如果要按多个列值排序,我们可以像下面这样向 sort_values 方法中传递一个列名列表。

import pandas as pd

data = {
    'name': ['Tom', 'Jerry', 'Spike', 'Tyke'],
    'age': [2, 3, 1, 4],
    'score': [95, 80, 70, 90]
}

df = pd.DataFrame(data)

# 按年龄升序、分数降序排序
df_sorted = df.sort_values(by=['age', 'score'], ascending=[True, False])

print(df_sorted)

输出结果:

    name  age  score
2  Spike    1     70
0    Tom    2     95
1  Jerry    3     80
3   Tyke    4     90

在上面的例子中,我们首先按年龄升序排序,然后在年龄相同的情况下按分数降序排序。

注意事项

在对数据帧进行排序时,需要注意以下几点:

  • 如果有缺失值(NaN),它们将被放在最后面。
  • 如果要按多个列值排序,要保证列名列表中的列名顺序与排序优先级相同,即第一个列名是第一优先级的排序,第二个列名是第二优先级的排序,以此类推。
  • sort_values 方法会返回一个新的数据帧,不会改变原数据帧。如果要在原数据帧上进行排序,可以使用 inplace=True 参数。
结论

以上就是按列值对 Pandas 数据帧排序的全部内容。希望本文能对正在学习 Pandas 的你有所帮助。