python pandas数据排序

python pandas数据排序

0 背景

Pandas是一个广泛使用的Python库,专门用于数据处理和分析。之前我们介绍了相关的筛选、查询、操作。本篇我们主要介绍pandas的数据排序。排序对于数据的可读性、分析以及最终的数据可视化都是关键步骤。

Pandas中的排序方法:

  • sort_values()方法:这是Pandas中用于根据一个或多个列的值对数据进行排序的主要方法。
  • sort_index()方法:该方法根据索引排序DataFrame。

1 使用

初始化数据

python pandas数据排序
image-20231226232524490

在WPS中初始化数据:

df = xl("$A$1:$G$18", headers=True, sheet_name="工作表1")
# 设置索引为uid列
df.set_index('uid',inplace=True)
print(df.head())

在python中初始化数据:

# 初始化数据
# df = pd.read_csv('./工作表1.csv')
data = {  
    "uid": [03,2456789],  
    "uname": ["雷嘉伦""杜睿""孙晓明""方宇宁""彭睿""苏詩涵""宋子异""彭震南""钟宇宁"],  
    "usex": ["男""男""男""男""男""女""男""男""男"],  
    "uage": [798319311871475559],  
    "umail": ["lj712@mail.com""ruidu@hotmail.com""xiaomsun@gmail.com""""pengrui910@icloud.com"None"ziyso@gmail.com""zhepeng404@gmail.com""yuningzhong407@hotmail.com"],  
    "ucity": ["洛杉矶""广州市""纽约""深圳""纽约""东莞""中山""阿克伦""芝加哥"],  
    "udate": ["2001/11/13""2002/5/7""2010/8/9""2018/12/17""2017/4/3""2021/1/20""2001/6/18""2016/2/17""2014/3/15"]  
}
df = pd.DataFrame(data)
df.set_index('uid', inplace=True)

sort_index()

按照索引降序

# 按照索引降序
df.sort_index(ascending=False)

按照列排序

# 按照列排序
df.sort_index(axis=1)

在原数据基础上排序, 不返回新的Dataframe

# 在原数据基础上排序, 不返回新的数据
df.sort_index(inplace=True)

索引重新0-(n-1)排,不使用原来的索引

# 索引重新0-(n-1)排,不使用原来的索引, 可以得到它的排序号 
df.sort_index(ignore_index=True)

空值在排序中的位置

# na_position='first', 表示空值排在前面,另'last'表示空值在后(此处是指索引的空值), 默认是'last'
df['umail'].sort_index(na_position='first')

自定义函数排序

# 按照自定义函数排序
df.sort_index(key=lambda x:abs(x-5))
df1 = pd.DataFrame({"a": [1234]}, index=['A''b''C''d'])
df1.sort_index(key=lambda x: x.str.lower())

sort_values()

数据值的排序主要使用sort_values(),数字按大小顺序,字符按字母顺序。Series和DataFrame都支持此方法。

按照单、多列排序

df.sort_values(by='usex')
df.sort_values(by=['usex''umail'], na_position='last', ascending=False)
# 按照usex降序, umail升序的形式排序
df.sort_values(by=['usex''umail'], ascending=[FalseTrue])

修改立即在原Dataframe上生效

df.sort_values('usex',inplace=True)

索引重新0-(n-1)排

# 索引重新0-(n-1)排
df.sort_values('umail', ignore_index=True)

按照大小值排序

# 按值大小排序
df['uage'].nlargest(3)
df.nlargest(3'uage')

# 等同于
df.sort_values('uage', ascending=False).head(3)
df.nsmallest(3, ['uage''uid'])

2 关于

欢迎关注我的微信公众号


原文始发于微信公众号(其之):python pandas数据排序

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/204797.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!