今天我们就来说说pandas中数据过滤的内容。下面小编将举出20个左右的案例来详细讲解数据过滤的方法。首先我们创建要使用的数据集,代码如下:importpandasaspddf=pd.DataFrame({"name":["John","Jane","Emily","Lisa","Matt"],"note":[92,94,87,82,90],"profession":["Electricalengineer","Mechanicalengineer","Datascientist","Accountant","Athlete"],"date_of_birth"":["1998-11-01","2002-08-14","1996-01-12","2002-10-24","2004-04-05"],"组":["A","B","B","A","C"]")输出姓名备注熟练程度date_of_birthgroup0John92ElectricalEngineer1998-11-01A1Jane94MEChanicalEngineer2002-08-14B2Emily87Data科学家1996-01-12B3Lis82Accountant2002-10-24A4Matt90Athlete2004-04-05C表单中的几个栏目。然后根据上面的搜索结果筛选出几行,再筛选出几行,代码如下df.loc[:3,["name","note"]]outputnamenote0John921Jane942Emily873Lisa82根据索引过滤数据这里我们使用iloc的方式,代码如下df.iloc[:3,2]output0电气工程师1机械工程师2数据科学家通过比较运算符过滤数据df[df.note>90]outputnamenoteprofessiondate_of_birthgroup0John92Electricalengineer1998-11-01A1Jane94Mechanicalengineer2002-08-14bdt属性类型接口用于处理数据类型。或者将其他类型的数据转换成事件类型的数据,再进行处理,代码如下11]输出名字注意职业date_of_birthgroup0JohN92电气工程师1998-11-01aa或者我们也df[df.date_of_birth.dt.year>2000]输出名称注释注意职业日期date_of_of_birthGroup1Jane94机械工程师2002-08-14A4Matt90Athlete2004-04-05C多条件交集过滤数据当我们满足多个条件,在交集时过滤数据,代码应该写成df[(df.date_of_birth.dt.year>2000)&(df.profession.str.contains("engineer"))]outputnamenoteprofessiondate_of_birthgroup1Jane94Mechanicalengineer2002-08-14当多个条件组合过滤数据时使用方法过滤数据时,代码如下df[(df.note>90)|(df.profession=="Datascientist")]outputnamenoteprofessiondate_of_birthgroup0John92Electricalengineerec1998-11-01M9icalJengineer2002-08-14B2Emily87Datascientist1996-01-12BQuery方法过滤数据Pandas中的查询方法也可以过滤数据,我们将过滤条件输入df.query(&qUOT;Note>90"))输出名称NoteProfessiondate_of_birthGroup0John92ElectricalEngineer1998-11-01A1Jane94MEChanicalEngineer2002-08-14Bordf.qury'a89")输出名称notenoteprofessionprofessiondate_of_birthgroup0John92Electricalengineer1998-11-01Ansmallestmethodtofilterdatapandas中的nsmallest和nlargest方法用于查找数据集中最大和最小的数据,代码如下(df2.nsmallest,"note")outputname注意职业date_of_birthgroup3lisa82会计师2002-10-24A2emily87数据科学家1996-01-12bdf.nlaremest(2,“note”)输出名称notenotenotedocution_of_birthgroup1janeGroup1Jane94机械工程师2002-08-14B0John92John92John92John92电气工程师1998-11-01Aisna()方法isna()方法的作用是过滤掉那些为空值的数据。首先我们将表中的一些数据设置为空值df.loc[0,"profession"]=np.nandf[df.profession.isna()]输出名称注professiondate_of_birthgroup0John92NaN1998-11-01Anotna()方法notna()方法上面的isna()方法正好相反,功能是过滤掉那些不是空值的数据,代码如下df[df。cassign方法pandas当中的assign方法是添加一列df_1=df.assign(score=np.random.randint(0,100,size=5))df_1outputnamenoteprofessiondate_of_birty19ElectricalElectrica19Electrica19Electrica19Electrica-1919ElectronicsJane94机械工程师2002-08-14B842Emily87数据科学家1996-01-12B683Lisa82会计师2002-10-24A704运动员2004-04-05C39Explode方法Explode()方法。就是爆炸的意思,我们经常会遇到这样的数据集名称Hobby0吕布[打篮球,打游戏,喝奶茶]1貂蝉[打代码,看电影]2赵云[听音乐,健身]Hobby栏中的每一行数据以一个表格的形式聚集在一起列表,以及explode()方法代码如下:姓名爱好0吕布打篮球0吕布玩游戏0吕布喝奶茶1貂蝉类型代码1貂蝉看电影2赵云听音乐2赵云Fitness当然后面会展开,会有数据重复,df.explode('Hobby').drop_duplicates().reset_index(drop=True)outputNameHobby0吕布打篮球1吕布打游戏2吕布喝酒奶茶3貂蝉类型码4貂蝉看电影5赵云听音乐6赵云健身,这就是今天分享的内容,如果觉得文章还不错,欢迎关注公众号:Python编程学习圈,每日干货分享,发“J”也可领取大量学习资料或前往pr编程学习网,学习更多编程技术。
