Series的排序:
- Series.sort_values(ascending=True,inplace=False)
- 参数说明:
- ascending:默认为True升序排序,为False降序排序
- inplace:是否修改原始Series
DataFrame的排序:
- DataFrame.sort_values(by, ascending=True,inplace=False)
- 参数说明:
- by:字符串或者List<字符串>,单列排序或者多列排序
- ascending: bool或者list, 升序还是降序,如果是list对应by的多列
- inplace: 是否修改原始的DataFrame
0. 读取数据
import pandas as pd
file_path = r'C:\TELCEL_MEXICO_BOT\A\Weather.csv'
df = pd.read_csv(file_path,encoding='utf-8')
# 查看df的前3行数据
print(df.head(3))
ymd bWendu yWendu tianqi fengxiang fengji aqi aqiInfo aqiLevel
0 1/1/2025 -25°C -6°C 晴~多云 西北风 1-2级 59 优 2
1 1/2/2025 2°C -9°C 阴 东南风 3-4级 48 优 1
2 1/3/2025 -11°C -2°C 晴~多云 西风 4-8级 28 良 1
# 将df中bWendu和yWendu的列数据先转换成字符串,然后把字符串中的°C替换成空,最后变成int32
df['bWendu'] = df['bWendu'].str.replace('°C', '').astype('int32')
df['yWendu'] = df['yWendu'].str.replace('°C', '').astype('int32')
ymd bWendu yWendu tianqi fengxiang fengji aqi aqiInfo aqiLevel 0 1/1/2025 -25 -6 晴~多云 西北风 1-2级 59 优 2 1 1/2/2025 2 -9 阴 东南风 3-4级 48 优 1 2 1/3/2025 -11 -2 晴~多云 西风 4-8级 28 良 1 3 1/4/2025 0 -4 晴~多云 东风 2-5级 30 良 1 4 1/5/2025 3 -1 小雨 东风 3-5级 25 良 1 5 1/6/2025 10 3 阴 南风 2-5级 39 良 1 6 1/7/2025 7 -10 阴 南风 3-5级 59 差 1 7 1/8/2025 -13 -6 小雨 西风 3-4级 39 差 1 8 1/9/2025 8 -9 晴~多云 东风 4-8级 29 差 1 9 1/10/2025 3 -2 阵雨 北风 2-5级 25 优 3 10 1/11/2025 5 -4 阵雨 北风 3-5级 36 优 4 11 1/12/2025 7 -1 冰 西风 2-5级 39 差 2 12 1/13/2025 2 -4 冰 东风 2-5级 59 差 5 13 1/14/2025 -14 -1 霜 南风 3-5级 48 优 2 14 1/15/2025 7 -9 霜 南风 2-5级 28 良 3 15 1/16/2025 5 -10 冰 西风 3-5级 30 良 1 16 1/17/2025 -19 -6 雾 东风 3-4级 25 差 6 17 1/18/2025 3 -9 雾 西风 2-5级 39 优 4 18 1/19/2025 1 -2 雾 东风 3-5级 59 优 3
1. Series的排序
print(df['aqi'].sort_values()) # 默认升序排列 9 25 4 25 16 25 2 28 14 28 8 29 3 30 15 30 10 36 5 39 7 39 17 39 11 39 1 48 13 48 0 59 6 59 12 59 18 59 Name: aqi, dtype: int64
print(df['aqi'].sort_values(ascending=False)) # ascending=False为降序排列 0 59 6 59 12 59 18 59 1 48 13 48 5 39 7 39 11 39 17 39 10 36 3 30 15 30 8 29 2 28 14 28 4 25 16 25 9 25 Name: aqi, dtype: int64
print(df['tianqi'].sort_values()) #对天气也进行了排序 15 冰 12 冰 11 冰 4 小雨 7 小雨 0 晴~多云 2 晴~多云 3 晴~多云 8 晴~多云 1 阴 5 阴 6 阴 9 阵雨 10 阵雨 17 雾 16 雾 18 雾 13 霜 14 霜 Name: tianqi, dtype: object
2. DataFrame的排序
2.1 单列排序
print(df.sort_values(by='aqi')) # aqi默认为升序排序 ymd bWendu yWendu tianqi fengxiang fengji aqi aqiInfo aqiLevel 9 1/10/2025 3 -2 阵雨 北风 2-5级 25 优 3 4 1/5/2025 3 -1 小雨 东风 3-5级 25 良 1 16 1/17/2025 -19 -6 雾 东风 3-4级 25 差 6 2 1/3/2025 -11 -2 晴~多云 西风 4-8级 28 良 1 14 1/15/2025 7 -9 霜 南风 2-5级 28 良 3 8 1/9/2025 8 -9 晴~多云 东风 4-8级 29 差 1 3 1/4/2025 0 -4 晴~多云 东风 2-5级 30 良 1 15 1/16/2025 5 -10 冰 西风 3-5级 30 良 1 10 1/11/2025 5 -4 阵雨 北风 3-5级 36 优 4 5 1/6/2025 10 3 阴 南风 2-5级 39 良 1 7 1/8/2025 -13 -6 小雨 西风 3-4级 39 差 1 17 1/18/2025 3 -9 雾 西风 2-5级 39 优 4 11 1/12/2025 7 -1 冰 西风 2-5级 39 差 2 1 1/2/2025 2 -9 阴 东南风 3-4级 48 优 1 13 1/14/2025 -14 -1 霜 南风 3-5级 48 优 2 0 1/1/2025 -25 -6 晴~多云 西北风 1-2级 59 优 2 6 1/7/2025 7 -10 阴 南风 3-5级 59 差 1 12 1/13/2025 2 -4 冰 东风 2-5级 59 差 5 18 1/19/2025 1 -2 雾 东风 3-5级 59 优 3
print(df.sort_values(by='aqi',ascending=False)) # ascending=False后,aqi按降序排序 ymd bWendu yWendu tianqi fengxiang fengji aqi aqiInfo aqiLevel 0 1/1/2025 -25 -6 晴~多云 西北风 1-2级 59 优 2 6 1/7/2025 7 -10 阴 南风 3-5级 59 差 1 12 1/13/2025 2 -4 冰 东风 2-5级 59 差 5 18 1/19/2025 1 -2 雾 东风 3-5级 59 优 3 1 1/2/2025 2 -9 阴 东南风 3-4级 48 优 1 13 1/14/2025 -14 -1 霜 南风 3-5级 48 优 2 5 1/6/2025 10 3 阴 南风 2-5级 39 良 1 7 1/8/2025 -13 -6 小雨 西风 3-4级 39 差 1 11 1/12/2025 7 -1 冰 西风 2-5级 39 差 2 17 1/18/2025 3 -9 雾 西风 2-5级 39 优 4 10 1/11/2025 5 -4 阵雨 北风 3-5级 36 优 4 3 1/4/2025 0 -4 晴~多云 东风 2-5级 30 良 1 15 1/16/2025 5 -10 冰 西风 3-5级 30 良 1 8 1/9/2025 8 -9 晴~多云 东风 4-8级 29 差 1 2 1/3/2025 -11 -2 晴~多云 西风 4-8级 28 良 1 14 1/15/2025 7 -9 霜 南风 2-5级 28 良 3 4 1/5/2025 3 -1 小雨 东风 3-5级 25 良 1 16 1/17/2025 -19 -6 雾 东风 3-4级 25 差 6 9 1/10/2025 3 -2 阵雨 北风 2-5级 25 优 3
2.2 多列排序
# 先按aqiLevel升序,然后按bWendu升序 print(df.sort_values(by=['aqiLevel','bWendu'])) ymd bWendu yWendu tianqi fengxiang fengji aqi aqiInfo aqiLevel 7 1/8/2025 -13 -6 小雨 西风 3-4级 39 差 1 2 1/3/2025 -11 -2 晴~多云 西风 4-8级 28 良 1 3 1/4/2025 0 -4 晴~多云 东风 2-5级 30 良 1 1 1/2/2025 2 -9 阴 东南风 3-4级 48 优 1 4 1/5/2025 3 -1 小雨 东风 3-5级 25 良 1 15 1/16/2025 5 -10 冰 西风 3-5级 30 良 1 6 1/7/2025 7 -10 阴 南风 3-5级 59 差 1 8 1/9/2025 8 -9 晴~多云 东风 4-8级 29 差 1 5 1/6/2025 10 3 阴 南风 2-5级 39 良 1 0 1/1/2025 -25 -6 晴~多云 西北风 1-2级 59 优 2 13 1/14/2025 -14 -1 霜 南风 3-5级 48 优 2 11 1/12/2025 7 -1 冰 西风 2-5级 39 差 2 18 1/19/2025 1 -2 雾 东风 3-5级 59 优 3 9 1/10/2025 3 -2 阵雨 北风 2-5级 25 优 3 14 1/15/2025 7 -9 霜 南风 2-5级 28 良 3 17 1/18/2025 3 -9 雾 西风 2-5级 39 优 4 10 1/11/2025 5 -4 阵雨 北风 3-5级 36 优 4 12 1/13/2025 2 -4 冰 东风 2-5级 59 差 5 16 1/17/2025 -19 -6 雾 东风 3-4级 25 差 6
# aqiLevel和bWendu都降序排序 print(df.sort_values(by=['aqiLevel','bWendu'], ascending=False)) ymd bWendu yWendu tianqi fengxiang fengji aqi aqiInfo aqiLevel 16 1/17/2025 -19 -6 雾 东风 3-4级 25 差 6 12 1/13/2025 2 -4 冰 东风 2-5级 59 差 5 10 1/11/2025 5 -4 阵雨 北风 3-5级 36 优 4 17 1/18/2025 3 -9 雾 西风 2-5级 39 优 4 14 1/15/2025 7 -9 霜 南风 2-5级 28 良 3 9 1/10/2025 3 -2 阵雨 北风 2-5级 25 优 3 18 1/19/2025 1 -2 雾 东风 3-5级 59 优 3 11 1/12/2025 7 -1 冰 西风 2-5级 39 差 2 13 1/14/2025 -14 -1 霜 南风 3-5级 48 优 2 0 1/1/2025 -25 -6 晴~多云 西北风 1-2级 59 优 2 5 1/6/2025 10 3 阴 南风 2-5级 39 良 1 8 1/9/2025 8 -9 晴~多云 东风 4-8级 29 差 1 6 1/7/2025 7 -10 阴 南风 3-5级 59 差 1 15 1/16/2025 5 -10 冰 西风 3-5级 30 良 1 4 1/5/2025 3 -1 小雨 东风 3-5级 25 良 1 1 1/2/2025 2 -9 阴 东南风 3-4级 48 优 1 3 1/4/2025 0 -4 晴~多云 东风 2-5级 30 良 1 2 1/3/2025 -11 -2 晴~多云 西风 4-8级 28 良 1 7 1/8/2025 -13 -6 小雨 西风 3-4级 39 差 1
# aqiLevel升序排序,然后bWendu降序排序,即分别指定升序和降序 print(df.sort_values(by=['aqiLevel','bWendu'], ascending=[True,False])) ymd bWendu yWendu tianqi fengxiang fengji aqi aqiInfo aqiLevel 5 1/6/2025 10 3 阴 南风 2-5级 39 良 1 8 1/9/2025 8 -9 晴~多云 东风 4-8级 29 差 1 6 1/7/2025 7 -10 阴 南风 3-5级 59 差 1 15 1/16/2025 5 -10 冰 西风 3-5级 30 良 1 4 1/5/2025 3 -1 小雨 东风 3-5级 25 良 1 1 1/2/2025 2 -9 阴 东南风 3-4级 48 优 1 3 1/4/2025 0 -4 晴~多云 东风 2-5级 30 良 1 2 1/3/2025 -11 -2 晴~多云 西风 4-8级 28 良 1 7 1/8/2025 -13 -6 小雨 西风 3-4级 39 差 1 11 1/12/2025 7 -1 冰 西风 2-5级 39 差 2 13 1/14/2025 -14 -1 霜 南风 3-5级 48 优 2 0 1/1/2025 -25 -6 晴~多云 西北风 1-2级 59 优 2 14 1/15/2025 7 -9 霜 南风 2-5级 28 良 3 9 1/10/2025 3 -2 阵雨 北风 2-5级 25 优 3 18 1/19/2025 1 -2 雾 东风 3-5级 59 优 3 10 1/11/2025 5 -4 阵雨 北风 3-5级 36 优 4 17 1/18/2025 3 -9 雾 西风 2-5级 39 优 4 12 1/13/2025 2 -4 冰 东风 2-5级 59 差 5 16 1/17/2025 -19 -6 雾 东风 3-4级 25 差 6
5753

被折叠的 条评论
为什么被折叠?



