pandas dataframe dataframe.sort-ag捕鱼王app官网

pandas dataframe dataframe.sort_values() 函数

作者:迹忆客 最近更新:2024/04/22 浏览次数:

pandas dataframe.sort_values() 方法将调用者 dataframe 沿任一索引的指定列中的值按升序或降序排序。


pandas.dataframe.sort_values() 语法

dataframe.sort_values(
    by,
    axis=0,
    ascending=true,
    inplace=false,
    kind="quicksort",
    na_position="last",
    ignore_index=false,
)

参数

by 要排序的名称或名称列表
axis 沿行(axis=0)或列(axis=1)排序
ascending 按升序排序(ascending=true)或降序排序(ascending=false)
inplace 布尔型。如果为 true,就地修改调用者 dataframe
kind 排序算法。默认为 quicksort
na_position nan 值放在开头(na_position=first)或结尾(na_position=last)
ignore_index 布尔型。如果是 true,则忽略原始 dataframe 中的索引,默认值是 false,即使用索引。默认值是 false,表示使用索引。 1.0.0 版本新增

返回值

如果 inplacetrue,则返回排序后的 dataframe;否则为 none


示例代码:使用 pandas 对 dataframe 进行排序 pandas.dataframe.sort_values() 基于单列进行排序

import pandas as pd
dates=['april-10', 
       'april-11', 
       'april-12', 
       'april-13',
       'april-14',
       'april-16']
sales=[200,300,400,200,300,300]
prices=[3, 1, 2, 4,3,2]
df = pd.dataframe({'date':dates ,
                   'sales':sales ,
                   'price': prices})
print("before sorting:")
print(df)
sorted_df=df.sort_values(by=['price'])
print("after sorting:")
print(sorted_df)

输出:

before sorting:
       date  sales  price
0  april-10    200      3
1  april-11    300      1
2  april-12    400      2
3  april-13    200      4
4  april-14    300      3
5  april-16    300      2
after sorting:
       date  sales  price
       date  sales  price
1  april-11    300      1
2  april-12    400      2
5  april-16    300      2
0  april-10    200      3
4  april-14    300      3
3  april-13    200      4

它根据 price 列中的值按升序(默认)对 dataframe df 进行排序。

排序后的 dataframe 中的索引与原始 dataframe 中的索引保持一致。

如果你喜欢在排序后的 dataframe 中使用新的索引列,那么你可以设置 ignore_index(从 1.0.0 版本引入)为 true

import pandas as pd
dates = ["april-10", "april-11", "april-12", "april-13", "april-14", "april-16"]
sales = [200, 300, 400, 200, 300, 300]
prices = [3, 1, 2, 4, 3, 2]
df = pd.dataframe({"date": dates, "sales": sales, "price": prices})
print("before sorting:")
print(df)
sorted_df = df.sort_values(by=["price"], ignore_index=true)
print("after sorting:")

输出:

before sorting:
       date  sales  price
0  april-10    200      3
1  april-11    300      1
2  april-12    400      2
3  april-13    200      4
4  april-14    300      3
5  april-16    300      2
after sorting:
       date  sales  price
0  april-11    300      1
1  april-12    400      2
2  april-16    300      2
3  april-10    200      3
4  april-14    300      3
5  april-13    200      4

在这里,我们使用 ignore_index=true 为行分配新的索引,并忽略原来 dataframe 的索引。


示例代码:使用 pandas dataframe.sort_values() 基于多列对 dataframe 进行排序

import pandas as pd
dates=['april-10', 
       'april-11', 
       'april-12', 
       'april-13',
       'april-14',
       'april-16']
sales=[200,300,400,200,300,300]
prices=[3, 1, 2, 4,3,2]
df = pd.dataframe({'date':dates ,
                   'sales':sales ,
                   'price': prices})
print("before sorting:")
print(df)
df.sort_values(by=['sales','price'],
               ignore_index=true,
               inplace=true)
print("after sorting:")
print(df)

输出:

before sorting:
       date  sales  price
0  april-10    200      3
1  april-11    300      1
2  april-12    400      2
3  april-13    200      4
4  april-14    300      3
5  april-16    300      2
after sorting:
       date  sales  price
0  april-10    200      3
1  april-13    200      4
2  april-11    300      1
3  april-16    300      2
4  april-14    300      3
5  april-12    400      2

在这里,首先按升序对 sales 进行排序,然后对每个 salesprice 也按升序进行排序。

df 中,200sales 列的最小值,3sales 值为 200price 列的最小值。

所以,sales 列中有 200price 列中有 3 的行排在最前面。

由于 inplace=true,调用 sort_values() 函数后,原 dataframe 被就地修改。


示例代码:用 pandas dataframe.sort_values() 对 dataframe 进行降序排序

import pandas as pd
dates=['april-10', 
       'april-11', 
       'april-12', 
       'april-13',
       'april-14',
       'april-16']
sales=[200,300,400,200,300,300]
prices=[3, 1, 2, 4,3,2]
df = pd.dataframe({'date':dates ,
                   'sales':sales ,
                   'price': prices})
print("before sorting:")
print(df)
sorted_df=df.sort_values(by=['sales'],
                         ignore_index=true,
                         ascending=false)
print("after sorting:")
print(sorted_df)

输出:

before sorting:
       date  sales  price
0  april-10    200      3
1  april-11    300      1
2  april-12    400      2
3  april-13    200      4
4  april-14    300      3
5  april-16    300      2
after sorting:
       date  sales  price
0  april-12    400      2
1  april-11    300      1
2  april-14    300      3
3  april-16    300      2
4  april-10    200      3
5  april-13    200      4

它按照 sales 列的数值降序对 dataframe df 进行排序。

400sales 列中的最大值,因此该条目将被置于顶端,其他行也将相应地进行排序。


示例代码:使用 pandas dataframe.sort_values() 对 dataframe 进行排序,将 nan 放在开头

import pandas as pd
dates=['april-10', 
       'april-11', 
       'april-12', 
       'april-13',
       'april-14',
       'april-16']
sales=[200,300,400,200,300,300]
prices=[3, 1, 2, 4,3,2]
df = pd.dataframe({'date':dates ,
                   'sales':sales ,
                   'price': prices})
print("before sorting:")
print(df)
sorted_df=df.sort_values(by=['price'],ignore_index=true,na_position='first')
print("after sorting:")
print(sorted_df)

输出:

before sorting:
       date  sales  price
0  april-10    200    nan
1  april-11    300    1.0
2  april-12    400    2.0
3  april-13    200    4.0
4  april-14    300    3.0
5  april-16    300    nan
after sorting:
       date  sales  price
0  april-10    200    nan
1  april-16    300    nan
2  april-11    300    1.0
3  april-12    400    2.0
4  april-14    300    3.0
5  april-13    200    4.0

在默认情况下,nan 值在排序后被放在 dataframe 的最后。

但是通过设置 na_position=first,我们可以将 nan 值放在 dataframe 的开头。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

pandas read_csv()函数

发布时间:2024/04/24 浏览次数:254 分类:python

pandas read_csv()函数将指定的逗号分隔值(csv)文件读取到 dataframe 中。

pandas 追加数据到 csv 中

发布时间:2024/04/24 浏览次数:352 分类:python

本教程演示了如何在追加模式下使用 to_csv()向现有的 csv 文件添加数据。

pandas 多列合并

发布时间:2024/04/24 浏览次数:628 分类:python

本教程介绍了如何在 pandas 中使用 dataframe.merge()方法合并两个 dataframes。

pandas loc vs iloc

发布时间:2024/04/24 浏览次数:837 分类:python

本教程介绍了如何使用 python 中的 loc 和 iloc 从 pandas dataframe 中过滤数据。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便
网站地图