Pandas:如何按绝对值对行进行排序


您可以使用以下方法根据列的绝对值对 pandas DataFrame 的行进行排序:

方法一:按绝对值排序(绝对值最小的先显示)

 df. reindex (df[' my_column ']. abs (). sort_values (). index )

方法二:按绝对值排序(绝对值最大的先显示)

 df. reindex (df[' my_column ']. abs (). sort_values (ascending= False ) .index )

以下示例展示了如何在实践中使用包含各种篮球运动员信息的 pandas DataFrame 中的每种方法:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' player ': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'],
                   ' over_under ': [4, -9, 2, 0, 1, 12, -4, -5]})
                   
#view DataFrame
print (df)

  player over_under
0 to 4
1 B -9
2 C 2
3 D 0
4 E 1
5 F 12
6 G -4
7 a.m. -5

示例1:按绝对值排序(绝对值最小的先显示)

我们可以使用以下语法根据over_under列的绝对值对 DataFrame 的行进行排序:

 #sort DataFrame based on absolute value of over_under column
df_sorted = df. reindex (df[' over_under ']. abs (). sort_values (). index )

#view sorted DataFrame
print (df_sorted)

  player over_under
3 D 0
4 E 1
2 C 2
0 to 4
6 G -4
7 a.m. -5
1 B -9
5 F 12

请注意,行按over_under列中的最小绝对值到最大绝对值排序。

示例2:按绝对值排序(绝对值最大的先显示)

我们可以使用以下语法根据over_under列的绝对值对 DataFrame 的行进行排序:

 #sort DataFrame based on absolute value of over_under column
df_sorted = df. reindex (df[' over_under ']. abs (). sort_values (ascending= False ) .index )

#view sorted DataFrame
print (df_sorted)

  player over_under
5 F 12
1 B -9
7 a.m. -5
0 to 4
6 G -4
2 C 2
4 E 1
3 D 0

请注意,行按over_under列中的最大绝对值到最小绝对值排序。

注意:您可以在此处找到 pandas sort_values()函数的完整文档。

其他资源

以下教程解释了如何在 pandas 中执行其他常见任务:

Pandas:如何按日期排序
Pandas:如何按名称对列进行排序
Pandas:如何按索引和列排序

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注