龙空技术网

pandas的query筛选方法使用

温水青蛙202306 301

前言:

而今我们对“python datalist”可能比较讲究,小伙伴们都需要分析一些“python datalist”的相关文章。那么小编在网上收集了一些对于“python datalist””的相关内容,希望朋友们能喜欢,各位老铁们快快来了解一下吧!

20230424星期一:

对数据筛选,获取指定列的数据,或者 列中特定值的数据

import pandas as pddatalist = {    'brand' : ['Python数据之道','价值前瞻','菜鸟数据之道','Python','Java'],    'A' : [10,2,8,5,14],    'B' : [6,2,12,9,6],    'C' : [12,13,14,15,8],    'D' : [8,6,14,4,8],    'till year' : [4,1,1,30,30]}data = pd.DataFrame(datalist)# 1,筛选 brand 列中,值为 Python数据之道 的列:data1 = data.query('brand == "Python数据之道"')# print(type(data1),'\n',data1) # <class 'pandas.core.frame.DataFrame'>'''<class 'pandas.core.frame.DataFrame'>          brand   A  B   C  till year0  Python数据之道  10  6  12          4'''# 1.1,使用如下方法,效果一样:data11 = data[data['brand'] == "Python数据之道"]# print(type(data11),'\n',data11) # <class 'pandas.core.frame.DataFrame'># 2,通过数学表达式筛选: 包括 > < + - * /data2 = data.query('A > B')data21 = data.query('A + B > C + D')data22 = data.query('A*2 > C + D')# print(type(data2),'\n',data2) # <class 'pandas.core.frame.DataFrame'>'''<class 'pandas.core.frame.DataFrame'>          brand   A  B   C  D  till year0  Python数据之道  10  6  12  8          44        Java  14  6   8  8         30'''# 3,通过变量筛选,在变量前面添加 @ 符号来实现name = 'Python数据之道'data3 = data.query('brand == @name')# print(type(data3),'\n',data3) # <class 'pandas.core.frame.DataFrame'># 4,通过列表数据筛选:data4 = data.query('brand in ["Python数据之道","菜鸟数据之道"]')# print(type(data4),'\n',data4) # <class 'pandas.core.frame.DataFrame'>'''<class 'pandas.core.frame.DataFrame'>          brand   A   B   C   D  till year0  Python数据之道  10   6  12   8          42      菜鸟数据之道   8  12  14  14          1'''# 5,多条件筛选,都满足:& and,满足其中之一:| ordata5 = data.query('brand in ["Python数据之道","菜鸟数据之道"] and A > 8')# print(type(data5),'\n',data5) # <class 'pandas.core.frame.DataFrame'>data51 = data.query('brand in ["Python数据之道","菜鸟数据之道"] | A > 8')# print(type(data51),'\n',data51) # <class 'pandas.core.frame.DataFrame'># 6,列名有空格 或者其他特殊符号的时候,需要使用反引号 ,即ESC下面的按键data6 = data.query('`till year` < 5')# print(type(data6),'\n',data6) # <class 'pandas.core.frame.DataFrame'>'''<class 'pandas.core.frame.DataFrame'>          brand   A   B   C   D  till year0  Python数据之道  10   6  12   8          41        价值前瞻   2   2  13   6          12      菜鸟数据之道   8  12  14  14          1'''# 7,筛选后,选取数据列:data7 = data.query('`till year` < 5')[['brand','A','B']]print(type(data7),'\n',data7) # <class 'pandas.core.frame.DataFrame'>'''<class 'pandas.core.frame.DataFrame'>          brand   A   B0  Python数据之道  10   61        价值前瞻   2   22      菜鸟数据之道   8  12'''

标签: #python datalist