Pythonpandas如何根据指定条件筛选数据,


目录
  • 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"])
    

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

    法一:直接筛选

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

    df[df["sh"]>5]

    法二:函数筛选

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

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

    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("福")]#筛选出福建省数据
    

    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)]
    

    3)切片

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

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

    4、筛选重复值

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

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

    总结

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

    您可能感兴趣的文章:
    • Pandas条件筛选与组合筛选的使用
    • Python数据分析之 Pandas Dataframe条件筛选遍历详情
    • Python Pandas条件筛选功能
    • pandas按条件筛选数据的实现
    • pandas按若干个列的组合条件筛选数据的方法
    • pandas根据指定条件筛选数据的实现示例

    评论关闭