Pandas_filter函数的应用

1
import pandas as pd 

Pandas中的应用

1
2
3
4
5
6
url = "https://www.icauto.com.cn/rank/"

data = pd.read_html(url, index_col=0, header=0)[0]
data.rename(columns={'年累计':'年销量'},inplace=True)
data

车型 资料信息 月销量 年销量
#
1 Model Y 品牌:特斯拉,指导价:26.39-34.99万 41428 320109
2 秦PLUS 品牌:比亚迪,指导价:9.98-20.99万 39904 317115
3 宋PLUS新能源 品牌:比亚迪,指导价:15.38-21.98万 36773 276140
4 海鸥 品牌:比亚迪,指导价:7.88-9.58万 35011 119828
5 朗逸 品牌:大众,指导价:9.40-15.19万 32105 246656
... ... ... ... ...
583 悦动 品牌:现代,指导价:8.49-11.59万 1 7704
584 名爵6新能源 品牌:MG名爵,指导价:14.58-19.98万 1 86
585 卡罗拉双擎E+ 品牌:丰田,指导价:20.78-23.08万 1 415
586 荣威i6 MAX 品牌:荣威,指导价:11.00-13.00万 1 543
587 宝骏RM-5 品牌:宝骏,指导价:7.88-12.08万 1 35

587 rows × 4 columns

列表的形式

df.filter(items=[*,*, ])

  1. items = list
  2. 列表内的元素:
    1. 列名称
    2. index
1
2
# 过滤列,select columns by name
data.filter(items=['车型','月销量'],axis=1)
车型 月销量
#
1 Model Y 41428
2 秦PLUS 39904
3 宋PLUS新能源 36773
4 海鸥 35011
5 朗逸 32105
... ... ...
583 悦动 1
584 名爵6新能源 1
585 卡罗拉双擎E+ 1
586 荣威i6 MAX 1
587 宝骏RM-5 1

587 rows × 2 columns

1
2
# 过滤行
data.filter(items=[10,100,200,300,400],axis =0)
车型 资料信息 月销量 年销量
#
10 海豚 品牌:比亚迪,指导价:11.68-13.98万 24282 221579
100 蒙迪欧 品牌:福特,指导价:14.98-21.68万 6600 37277
200 奥迪Q4 e-tron 品牌:奥迪,指导价:28.99-38.00万 2406 16192
300 传祺GS4 品牌:广汽传祺,指导价:8.98-13.18万 966 17405
400 传祺GS4 PLUS 品牌:广汽传祺,指导价:12.68-14.98万 356 5253
like 模糊查询筛选
  1. like = str
1
2
# 过滤行 
data.filter(like='00',axis=0)
车型 资料信息 月销量 年销量
#
100 蒙迪欧 品牌:福特,指导价:14.98-21.68万 6600 37277
200 奥迪Q4 e-tron 品牌:奥迪,指导价:28.99-38.00万 2406 16192
300 传祺GS4 品牌:广汽传祺,指导价:8.98-13.18万 966 17405
400 传祺GS4 PLUS 品牌:广汽传祺,指导价:12.68-14.98万 356 5253
500 风光E3 品牌:东风风光,指导价:12.98-15.98万 67 337
regex=’ ‘ 正则查询筛选
  1. regex = str
1
data.filter(axis=1,regex='^年')
年销量
#
1 320109
2 317115
3 276140
4 119828
5 246656
... ...
583 7704
584 86
585 415
586 543
587 35

587 rows × 1 columns

1
2
3
# 正则还可以是多个条件
data.filter(axis=0, regex='^1[0-9]9$')

车型 资料信息 月销量 年销量
#
109 北京EU5 品牌:北京汽车,指导价:12.00-17.19万 5320 39695
119 奔驰A级 品牌:奔驰,指导价:21.48-27.22万 4835 39571
129 坦克500新能源 品牌:坦克,指导价:36.00万 4269 9328
139 江淮A5 PLUS 品牌:江淮,指导价:6.58-10.98万 4007 16717
149 科莱威CLEVER 品牌:荣威,指导价:6.00万 3590 15939
159 奥德赛 品牌:本田,指导价:23.58-43.98万 3388 28598
169 缤瑞 品牌:吉利汽车,指导价:9.58-11.08万 3062 22268
179 威飒 品牌:丰田,指导价:21.68-31.00万 2753 22241
189 捷途X90 品牌:捷途,指导价:8.89-17.29万 2561 18449
199 福瑞迪 品牌:起亚,指导价:8.08-10.48万 2416 20057
1
2
data.filter(axis=0, regex='[0-9]99$|[0-9]88$')

车型 资料信息 月销量 年销量
#
188 蔚来ET5T 品牌:蔚来,指导价:万 2593 8015
199 福瑞迪 品牌:起亚,指导价:8.08-10.48万 2416 20057
288 劲客 品牌:日产,指导价:8.98-13.78万 1058 4609
299 王牌M7 品牌:北汽制造,指导价:6.18-13.98万 979 3973
388 VGV U70 PRO 品牌:中国重汽VGV,指导价:7.78-11.58万 428 2836
399 风光380 品牌:东风风光,指导价:5.38-6.08万 357 2333
488 福特电马 品牌:福特,指导价:26.50-36.99万 93 1545
499 沃兰多 品牌:雪佛兰,指导价:0.00万 68 1788
1
2
data.filter(axis=0, regex='^[3,5,9][8-9]$')

车型 资料信息 月销量 年销量
#
38 奥迪Q5L 品牌:奥迪,指导价:39.68-48.88万 13518 98329
39 博越L 品牌:吉利汽车,指导价:12.87-17.58万 13036 102066
58 星瑞 品牌:吉利汽车,指导价:10.87-14.97万 10396 79847
59 腾势D9 品牌:腾势,指导价:33.50-66.00万 10249 87594
98 汉兰达 品牌:丰田,指导价:26.88-34.88万 6775 53301
99 凯迪拉克CT5 品牌:凯迪拉克,指导价:27.97-36.17万 6767 57081
多级过滤
1
2
data.filter(axis=0,regex='^1[0-9]9$').filter(like='8',axis=0)

车型 资料信息 月销量 年销量
#
189 捷途X90 品牌:捷途,指导价:8.89-17.29万 2561 18449