Pandas手册(4)- 对数据进行筛选和排序

浏览: 3104

前几天看了篇教程:使用Pandas对数据进行筛选和排序

里面主要介绍了,我们在使用Pandas时,对数据进行筛选和排序的介绍

这里简单总结分享下自己。

1. 排序

    可能是版本的问题,原文中的sort函数没有了,变成了2个常用的函数 sort_index和sort_value

DataFrame.sort_index(axis=0, level=None, ascending=True, inplace=False, kind='quicksort', na_position='last', sort_remaining=True, by=None)
Sort object by labels (along an axis)

DataFrame.sort_values(by, axis=0, ascending=True, inplace=False, kind='quicksort', na_position='last')
Sort by the values along either axis

sort_index:按照索引排序,及列标签或行标签,axis=0是列标签,axis=1是行标签

df3 = pd.DataFrame(np.random.randn(6,4),
index=list(range(0,12,2)),
columns=list(range(0,8,2)))

print(df3)
print(df3.sort_index(axis=0,ascending=False))
print(df3.sort_index(axis=1,ascending=False))

image.png

sort_value:按值进行排序,这个估计用的会多些,按数据内容进行排序

print(df3)
print(df3.sort_values(by=[0],axis=0,ascending=True))
print(df3.sort_values(by=[2],axis=0,ascending=False))

image.png

排序后呢,我们可能有,只需要看到前10、后10这类的需求,需要用到另一个函数 head()、tail()

2. 筛选

筛选呢,我们上一篇介绍了loc和iloc

Pandas手册(3)-DataFrame-Selection By Label/Position

这里,我们实际应用下

import pandas as pd
import numpy as np

df = pd.read_excel(r'D:\document\tableau_data\data_stu.xlsx',sheetname=0)
print(df)

#按照数学、语文,降序排列
print(df.sort_values(by=['数学','语文'],ascending=False))
#按照数学、语文,降序排列,取前3
print(df.sort_values(by=['数学','语文'],ascending=False).head(3))
#按照数学、语文,降序排列,取后3
print(df.sort_values(by=['数学','语文'],ascending=False).tail(3))

#筛选数学大于90的
print(df.loc[df['数学']>=90])
#筛选数学大于等于90,且语文小于60的
print(df.loc[(df['数学']>=90) & (df['语文']<60)])
#筛选数学或语文大于60分,爱英语排序
print(df.loc[(df['数学']>=60) | (df['语文']>=60)].sort_values(by=['英语']))

数据如下,

image.png

我们主要是多种过滤条件的整合使用,大家多练习就可以掌握了

3. 附录(参考资料)

使用Pandas对数据进行筛选和排序

推荐 1
本文由 liutangwow 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册