Pandas数据排序

一、pandas的两种排序方法:
1、Series的排序:Series.sort_values(ascending=True, inplace=False)
参数说明:
* ascending:默认为True升序排序,为False降序排序
* inplace:是否修改原始Series
2、DataFrame的排序:DataFrame.sort_values(by, ascending=True, inplace=False)
参数说明:
by:字符串或者List<字符串>,单列排序或者多列排序
ascending:bool或者List,升序还是降序,如果是list对应by的多列
inplace:是否修改原始DataFrame
二、读取数据;读取的数据可以用来进行两种排序
import pandas as pd
fpath = "./datas/beijing_tianqi_2018.csv"
df = pd.read_csv(fpath)
# 替换掉温度的后缀℃
df["bWendu"] = df["bWendu"].str.replace("℃", "").astype('int64')
df["yWendu"] = df["yWendu"].str.replace("℃", "").astype('int64')
df.head()
		ymd			bWendu	yWendu	tianqi	fengxiang	fengli	aqi	aqiInfo	aqiLevel
	0	2018-01-01		3	-6~多云	东北风		1-2592
	1	2018-01-02		2	-5~多云	东北风		1-2491
	2	2018-01-03		2	-5		多云		北风			1-2281
	3	2018-01-04		0	-8		阴		东北风		1-2281
	4	2018-01-05		3	-6		多云~晴	西北风		1-2501
三、Series的排序
df["aqi"].sort_values()
	271     21
	281     21
	249     22
	272     22
	301     22
	      ... 
	317    266
	71     287
	91     287
	72     293
	86     387
	Name: aqi, Length: 365, dtype: int64
df["aqi"].sort_values(ascending=False)
	86     387
	72     293
	91     287
	71     287
	317    266
	      ... 
	301     22
	272     22
	249     22
	281     21
	271     21
	Name: aqi, Length: 365, dtype: int64
df["tianqi"].sort_values()
	225     中雨~小雨
	230     中雨~小雨
	197    中雨~雷阵雨
	196    中雨~雷阵雨
	112        多云
	        ...  
	191    雷阵雨~大雨
	219     雷阵雨~335~多云
	353348         霾
	Name: tianqi, Length: 365, dtype: object
四、DataFrame的排序
1、单列排序
df.sort_values(by="aqi")
			ymd		bWendu	yWendu	tianqi	fengxiang	fengli	aqi	aqiInfo	aqiLevel
	271	2018-09-29	22		11		晴		北风			3-4211
	281	2018-10-09	15		4		多云~晴	西北风		4-5211
	249	2018-09-07	27		16		晴		西北风		3-4221
	272	2018-09-30	19		13		多云		西北风		4-5221
	301	2018-10-29	15		3		晴		北风			3-4221
	...		...		...		...		...		...			...		...		...		...	
	317	2018-11-14	13		5		多云		南风			1-2266		重度污染	5
	71	2018-03-13	17		5~多云	南风			1-2287		重度污染	5
	91	2018-04-02	26		11		多云		北风			1-2287		重度污染	5
	72	2018-03-14	15		6		多云~阴	东北风		1-2293		重度污染	5
	86	2018-03-28	25		9		多云~晴	东风			1-2387		严重污染	6
df.sort_values(by="aqi", ascending=False)
			ymd		bWendu	yWendu	tianqi	fengxiang	fengli	aqi	aqiInfo	aqiLevel
	271	2018-09-29	22		11		晴		北风			3-43871
	281	2018-10-09	15		4		多云~晴	西北风		4-52931
	249	2018-09-07	27		16		晴		西北风		3-42871
	272	2018-09-30	19		13		多云		西北风		4-52871
	301	2018-10-29	15		3		晴		北风			3-42661
	...		...		...		...		...		...			...		...		...		...	
	317	2018-11-14	13		5		多云		南风			1-222		重度污染	5
	71	2018-03-13	17		5~多云	南风			1-222		重度污染	5
	91	2018-04-02	26		11		多云		北风			1-222		重度污染	5
	72	2018-03-14	15		6		多云~阴	东北风		1-221		重度污染	5
	86	2018-03-28	25		9		多云~晴	东风			1-221 		严重污染	6
	365 rows × 9 columns
2、多列排序
# 按空气质量等级、最高温度排序,默认升序
df.sort_values(by=["aqiLevel", "bWendu"])

在这里插入图片描述

# 两个字段都是降序
df.sort_values(by=["aqiLevel", "bWendu"], ascending=False)

在这里插入图片描述

# 分别指定升序和降序
df.sort_values(by=["aqiLevel", "bWendu"], ascending=[True, False])

在这里插入图片描述

  • 22
    点赞
  • 67
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值