目录
  • pandas根据指定条件筛选数据
    • 1、筛选出"sh"列大于5的数据
    • 2、筛选出"sh"列为2或7的数据
    • 3、模糊筛选
    • 4、筛选重复值
  • 总结

    pandas根据指定条件筛选数据

    import pandas as pd
    import numpy as np
    df=pd.DataFrame(np.arange(16).reshape(4,4),columns=["sh","bj","sz","gz"],index=["one","two","three","four"])
    

    Python pandas如何根据指定条件筛选数据

    1、筛选出"sh"列大于5的数据

    法一:直接筛选

    适用于一些比较简单直接的筛选,这种方式方便快捷。

    df[df["sh"]>5]

    Python pandas如何根据指定条件筛选数据

    法二:函数筛选

    适用于比较复杂的条件筛选,函数除了可以使用lambda匿名函数以外,也可以使用其他逻辑更复杂的自定义函数。

    df[df["sh"].map(lambda x:x>5)]

    Python pandas如何根据指定条件筛选数据

    2、筛选出"sh"列为2或7的数据

    法一:同上

    df[df["sh"]==5]

    法二:同上

    df[df["sh"].map(lambda x:x==5)]

    法三:使用isin()函数,支持多值筛选

    df[df["sh"].isin([5])]

    3、模糊筛选

    1)str.contains()函数

    province = pd.DataFrame(['广东', '广西', '福建', '福建省'], columns=['省份'])
    province.loc[province["省份"].str.contains("福")]#筛选出福建省数据
    

    Python pandas如何根据指定条件筛选数据

    2)正则匹配

    import re
    province = pd.DataFrame(['广东', '广西', '福建', '福建省'], columns=['省份'])
    #自定义函数,如果包含“广”字,则返回True,否则返回False
    def func(x):
        if re.search(".*广.*",x):
            return(True)
        else:
            return(False)
    province[province["省份"].apply(func)]
    

    Python pandas如何根据指定条件筛选数据

    3)切片

    df=pd.DataFrame({"date":["2020efgdh0228","2021hijik0228","2019hokh0201"],"value":[9999,777,4]})

    Python pandas如何根据指定条件筛选数据

    #筛选出2019年的数据
    df[df["date"].map(lambda x:x[0:4])=="2019"]
    

    Python pandas如何根据指定条件筛选数据

    4、筛选重复值

    Python pandas如何根据指定条件筛选数据

    df[df.duplicated(subset=["one"],keep="last")]#返回除最后一次出现的重复值

    Python pandas如何根据指定条件筛选数据

    df[df.duplicated(subset=["one"],keep=False)]#返回所有重复值

    Python pandas如何根据指定条件筛选数据

    总结

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持。

    声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。