zl程序教程

您现在的位置是:首页 >  Java

当前栏目

Pandas | 数据排序

2023-02-18 16:35:07 时间

前言

❝本次我们来介绍,如何使用pandas进行数据的排序,包括Series排序以及DataFrame排序。 ❞

0. 导入Pandas

import pandas as pd

1. 数据读取

# 数据读取
data = pd.read_csv("D:/Pandas/mtcars.csv")
# 设置pandas的参数(最大列数,行宽,最大列宽)来展示完整信息
pd.set_option('display.max_columns', 1000)
pd.set_option('display.width', 1000)
pd.set_option('display.max_colwidth', 1000)
# 查看数据
data.head()
# 返回结果
               cars   mpg  cyl   disp   hp  drat     wt   qsec  vs  am  gear  carb
0          Mazda RX4  21.0    6  160.0  110  3.90  2.620  16.46   0   1     4     4
1      Mazda RX4 Wag  21.0    6  160.0  110  3.90  2.875  17.02   0   1     4     4
2         Datsun 710  22.8    4  108.0   93  3.85  2.320  18.61   1   1     4     1
3     Hornet 4 Drive  21.4    6  258.0  110  3.08  3.215  19.44   1   0     3     1
4  Hornet Sportabout  18.7    8  360.0  175  3.15  3.440  17.02   0   0     3     2

2. Series排序

函数格式:Series.sort_values(ascending=True, inplace=False)

参数说明:

Iascending:默认为True升序排序,为False降序排序;

inplace:是否修改原始Series。

这里我们以wt列为例进行演示。

# 默认为升序排序,返回一个Series
data["wt"].sort_values()
# 返回结果
27    1.513
18    1.615
19    1.835
25    1.935
26    2.140
17    2.200
2     2.320
………………………………
--------------------------------------------------------------------------------
# 降序排序
data["wt"].sort_values(ascending=False)
# 返回结果
15    5.424
16    5.345
14    5.250
11    4.070
24    3.845
23    3.840
13    3.780
………………………………

3. DataFrame排序

函数格式:DataFrame.sort_values(by, ascending=True, inplace=False)

参数说明:

by:字符串或者List<字符串>,单列排序或者多列排序,默认为True升序排序,为False降序排序;

ascending:bool或者List,升序还是降序,如果是list对应by的多列;

inplace:是否修改原始DataFrame。

3.1 单列排序

# 对wt列排序,默认为升序排序,返回一个DataFrame
data.sort_values(by = "wt")
# 返回结果
              cars   mpg  cyl   disp   hp  drat     wt   qsec  vs  am  gear  carb
27    Lotus Europa  30.4    4   95.1  113  3.77  1.513  16.90   1   1     5     2
18     Honda Civic  30.4    4   75.7   52  4.93  1.615  18.52   1   1     4     2
19  Toyota Corolla  33.9    4   71.1   65  4.22  1.835  19.90   1   1     4     1
25       Fiat X1-9  27.3    4   79.0   66  4.08  1.935  18.90   1   1     4     1
26   Porsche 914-2  26.0    4  120.3   91  4.43  2.140  16.70   0   1     5     2
………………………………
--------------------------------------------------------------------------------
# 降序排序
data.sort_values(by = "wt",ascending = False)
# 返回结果
                  cars   mpg  cyl   disp   hp  drat     wt   qsec  vs  am  gear  carb
15  Lincoln Continental  10.4    8  460.0  215  3.00  5.424  17.82   0   0     3     4
16    Chrysler Imperial  14.7    8  440.0  230  3.23  5.345  17.42   0   0     3     4
14   Cadillac Fleetwood  10.4    8  472.0  205  2.93  5.250  17.98   0   0     3     4
11           Merc 450SE  16.4    8  275.8  180  3.07  4.070  17.40   0   0     3     3
24     Pontiac Firebird  19.2    8  400.0  175  3.08  3.845  17.05   0   0     3     2
………………………………

3.2 多列排序

# 按照mpg,wt排序,默认升序
data.sort_values(by = ["mpg","wt"])
# 返回结果
                  cars   mpg  cyl   disp   hp  drat     wt   qsec  vs  am  gear  carb
14   Cadillac Fleetwood  10.4    8  472.0  205  2.93  5.250  17.98   0   0     3     4
15  Lincoln Continental  10.4    8  460.0  215  3.00  5.424  17.82   0   0     3     4
23           Camaro Z28  13.3    8  350.0  245  3.73  3.840  15.41   0   0     3     4
6            Duster 360  14.3    8  360.0  245  3.21  3.570  15.84   0   0     3     4
16    Chrysler Imperial  14.7    8  440.0  230  3.23  5.345  17.42   0   0     3     4
30        Maserati Bora  15.0    8  301.0  335  3.54  3.570  14.60   0   1     5     8
………………………………
--------------------------------------------------------------------------------
# 按照mpg,wt降序排序(优先按照mpg排序,mpg一样时按照wt排序)
data.sort_values(by = ["mpg","wt"],ascending = False)
# 返回结果
             cars   mpg  cyl   disp   hp  drat     wt   qsec  vs  am  gear  carb
19  Toyota Corolla  33.9    4   71.1   65  4.22  1.835  19.90   1   1     4     1
17        Fiat 128  32.4    4   78.7   66  4.08  2.200  19.47   1   1     4     1
18     Honda Civic  30.4    4   75.7   52  4.93  1.615  18.52   1   1     4     2
27    Lotus Europa  30.4    4   95.1  113  3.77  1.513  16.90   1   1     5     2
………………………………
--------------------------------------------------------------------------------
# mpg升序排序,wt降序排序
data.sort_values(by = ["mpg","wt"],ascending = [True, False])
# 返回结果
                   cars   mpg  cyl   disp   hp  drat     wt   qsec  vs  am  gear  carb
15  Lincoln Continental  10.4    8  460.0  215  3.00  5.424  17.82   0   0     3     4
14   Cadillac Fleetwood  10.4    8  472.0  205  2.93  5.250  17.98   0   0     3     4
23           Camaro Z28  13.3    8  350.0  245  3.73  3.840  15.41   0   0     3     4
6            Duster 360  14.3    8  360.0  245  3.21  3.570  15.84   0   0     3     4
16    Chrysler Imperial  14.7    8  440.0  230  3.23  5.345  17.42   0   0     3     4
30        Maserati Bora  15.0    8  301.0  335  3.54  3.570  14.60   0   1     5     8