当前位置: 首页 > 科技观察

Pandas实用技巧,数据过滤查询功能详解

时间:2023-03-13 08:05:18 科技观察

Pandas可以说是Python数据科学领域使用最广泛的工具之一。Pandas是一个高效的数据处理库。它以dataframe和series为基本数据类型,呈现类似于excel的二维数据。在数据处理过程中,我们经常会用到数据过滤。Pandas提供了多种数据过滤方法。在这里,我将与大家分享如何使用Pandas中的查询功能来过滤数据。query函数的一般用法如下:df.query('expression')文中代码在JupyterNotebook(或其他IDE)中运行。本次使用的pandas版本为1.3.0版本,如下:importpandasaspdprint(f'pandasversion:{pd.__version__}')#pandasversion:1.3.0rc1开始前先创建一份数据,以备后续使用:data={'品牌':['Python数据价值之路','价值前景','菜鸟数据之路','Python','Java'],'A':[10,2,5,20,16],'B':[4,6,8,12,10],'C':[8,12,18,8,2],'D':[6,18,14,6,12],'tillyears':[4,1,1,30,30]}df=pd.DataFrame(data=data)df数据如下:过滤值为"的行的常用方法Python“品牌”栏中的“数据方式”如下:df.query('品牌=="Python数据方式"')结果如下:说明上面代码中的单引号和双引号是可以互换的,下面的写法,结果是一样的:df.query("brand=='PythondataDao'")用上面的查询函数过滤数据,也可以用下面的方法实现:df[df['brand']=="PythonDataWay"]上面是th的值efilterstring,或者filternumber,如下:数学表达式筛选除了直接等于某个值筛选外,查询函数还支持数学表达式筛选数据,包括>,<、+、-、*、/等。示例如下:按变量过滤当程序比较长时,常使用变量作为过滤条件。当查询函数使用变量作为判断标准时,通过在变量前加上@符号来实现。示例如下:#传递变量过滤数据,在变量名前使用@符号='PythonDataWay'df.query('brand==@name')列表数据过滤当需要过滤多个值时在一列中满足要求的有时候可以通过列表(list)来实现,例子如下:#需要注意双引号和单引号的分隔df.query('brandin["PythonDataWay","ValueForward"]')#df.query("brandin['PythonDataWay','ValueProspect']")多条件过滤很多时候,我们需要通过多个条件来过滤数据.查询功能支持多种条件组合。Both需要满足的并列条件使用符号&,或者单词且只需要满足其中一个条件使用符号|,或者单词or例子如下:当列名有空格时当有空格时或者dataframe的列名中的其他特殊符号这时候就需要用到反引号(backtickmark),也就是键盘上ESC键下面的那个键(也就是键盘上第二行第一个键键盘,用符号'~')来包裹列名,例子如下:df.query("`tillyears`<5")注意,如果使用单引号,会报错,如下:过滤后选择数据列数据过滤后,还可以选择需要的数据列,如下:总结以上就是Pandas中查询功能的主要内容。查询函数用于过滤数据。语言比较简单,尤其是条件比较多的时候,会显得比较优雅。例如下面的比较,假设有三种过滤条件(假设数据量大,匹配结果多):当不使用查询函数时df[(df['brand']=="Python数据方式")&(df['A']>2)&(df['C']>4)]可以看出,上面的表达式比较长,略显繁琐。使用查询函数时df.query("brand=='PythonDataWay'&A>2&C>4")相对来说,使用查询函数会显得更简洁,如果觉得这个函数不错,就用吧快起来~~