精华内容
下载资源
问答
  • 主要介绍了Python实现多条件筛选目标数据功能,结合实例形式总结分析了Python3使用内建函数filter、pandas包以及for循环三种方法对比分析了列表进行条件筛选操作相关实现技巧与运行效率,需要的朋友可以参考下
  • python多条件筛选目标数据

    万次阅读 2018-03-13 12:30:36
    python中提供了一些数据过滤功能,可以使用内建函数,也可以使用循环语句来判断,或者使用pandas库,当然在有些情况下使用pandas是为了提高工作效率。举例如下:a = [('chic', 'JJ'), ('although', 'IN'), ('menu', ...

           python中提供了一些数据过滤功能,可以使用内建函数,也可以使用循环语句来判断,或者使用pandas库,当然在有些情况下使用pandas是为了提高工作效率。举例如下:

    a = [('chic', 'JJ'), ('although', 'IN'), ('menu', 'JJ'), ('items', 'NNS'), ('doesnt', 'JJ'),
         ('scream', 'NN'), ('french', 'JJ'), ('cuisine', 'NN')]

    这里的a为一个list,列表中还有元组。每一个元组由单词和其词性组成,我们要筛选词性为JJ何NN的单词。可以有三种写法:

    第一种,使用内建函数filter:

    def filt_nn(data_text):
        nn_data = filter(lambda x: x[1] == 'NN'or x[1] == 'JJ', data_text)
        print(list(nn_data))
        return list(nn_data)
    第二种,使用pandas包:
    • data = pd.DataFrame(a, columns=['word', 'ps'])
      print(data[data.ps.isin(['JJ', 'NN'])].word)
      第三种,使用循环:
    • absd = []
      for i in a:
          if i[1] == 'NN' or i[1] == 'JJ':
              absd.append(i[0])
      print(absd)
      得到的结果都相同,如下:

    • ['chic', 'menu', 'doesnt', 'scream', 'french', 'cuisine']
      虽然结果相同,但是推荐第一、二种方法,因为这两个方法速度更快。


    展开全文
  • python pandas多条件筛选

    2021-05-25 14:20:57
    我们在使用pandas操作表格时,通常会使用的筛选功能,但我在网上查找了很资料,pandas貌似没有响应的方法,因此我自己写了一方法,代码为: import pandas as pd def screen(df,cd): '''表筛选 df:pd....

    我们在使用pandas操作表格时,通常会使用到筛选功能,但我在网上查找了很多资料,pandas貌似没有相应的方法,因此我自己写了一个方法,代码为:

    import pandas as pd
    
    def df_screen(df,cd):
        '''表筛选
            df:pd.DataFrame
            cd: {字段:[条件1,条件2],} 数据格式字典
        '''
        df_cy = df.copy() 
        idx_z = [ True for i in df_cy.index]
        orcom  = lambda a,b: [ any([a[i],b[i]]) for i in range(len(a))] # 列表a与列表b两两 或 比较
        addcom  = lambda a,b: [ all([a[i],b[i]]) for i in range(len(a))] # 列表a与列表b两两 与 比较
        for z in cd:
            if isinstance(cd[z],list):
                for index,c in enumerate(cd[z]):
                    if index!=0:
                        idx_c = orcom(idx_c,list(df_cy[z] == c))
                    else:
                        idx_c = list(df_cy[z] == c)
                   
            else:
                idx_c = list(df_cy[z] == cd[z])
            idx_z = addcom(idx_z ,idx_c)
        return df_cy.loc[idx_z,:]
    

    数据准备:

    test = pd.DataFrame({'车型': ['皓影', '皓影', '皓影', '皓影', '皓影', '皓影', '皓影', '皓影', '皓影', '皓影', '本田CR-V', '本田CR-V', '本田CR-V', '本田CR-V', '本田CR-V', '本田CR-V', '本田CR-V', '本田CR-V'], '新能源类型': ['传统燃料', '传统燃料', '传统燃料', '常规混合动力', '传统燃料', '传统燃料', '传统燃料', '传统燃料', '常规混合动力', '常规混合动力', '传统燃料', '传统燃料', '传统燃料', '传统燃料', '常规混合动力', '常规混合动力', '插电式混合动力', '插电式混合动力'], '销量': [4, 176, 1, 35, 3, 1, 774, 38, 167, 17, 8, 1, 267, 3, 35, 3, 2, 1]})
    

    在这里插入图片描述
    函数调用

    cd = {
    	"车型":["皓影","本田CR-V"], # 需要筛选的字段及筛选的内容
    	"新能源类型":["传统燃料","常规混合动力"]
    	}
    df_screen(test,cd)
    

    注意:数据为虚构

    展开全文
  • 今天小编就为大家分享一篇使用python多个txt文件中的数据进行筛选的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 场景:集团中心下发本省数据时,并未按地市、业务拆分,现需要按地市、业务拆分并分发到地市。 本文利用Python的pandas包实现了以上场景。... 包含多个sheet的Excel 需要按列筛选出来另存为其它文件
  • python实现mysql多条件查询筛选功能

    千次阅读 2018-10-30 19:29:42
    要想实现筛选,就要想办法如何动态根据请求的条件写sql语句,第一步要考虑的是如何更好的封装请求到后台,以便于根据条件动态的拼接sql语句。 二、条件封装 首先将要所有要筛选条件封装成json数据在请求里,形如...

    目的:实现app列表筛选。

    一、思路

    原本是Java项目做的,感觉有些复杂,相反,Python代码较为简洁,改用Python实现。

    要想实现筛选,就要想办法如何动态根据请求的条件写sql语句,第一步要考虑的是如何更好的封装请求到后台,以便于根据条件动态的拼接sql语句。

    二、条件封装

    首先将要所有要筛选的条件封装成json数据在请求里,形如:

    {"MainCategories": "0","strategy": "0",
     "ManagementScale": "0","MaximumDrawdown":"0",
     "BusinessCity": "0","NumOfFund": "0",
     "NumberOfEmployees": "0","EstablishedTime": "0",
     "ContributedCapital": "0","PositiveRatio": "0"}

    解释一下:"MainCategories": "0","MainCategories"代表单个条件(这只是我用到的,更具自己实际情况更换),"0"代表默认/不限,这是一个默认的情况。想要"MainCategories"的多个限制,可以传:"MainCategories": "1,2,3...:,这里1,2,3代表相应的限制,比如MainCategories这个条件是主要类型包含“不限”、“会员”、“非会员”、“高级会员”,那么0代表限制里的“不限”,1代表“会员”,2代表“非会员”,3代表“高级会员”,这样就可以完美的把想要的条件传到后台。其他条件原理一样。

    三、条件处理

    然后重点来了,再看一下如何获取json封装的条件并且处理。

    我用的龙卷风框架(tornado),直接获取:

    content = self.get_argument("content")//注:我请求的json数据的名字叫content。

    此处封装一个方法,ReadJson(content):将json数据传过去。

    方法内初始化sql条件:

    sb = "" //注意,不是骂人,仿照java里的StringBuilder的缩写。

    然后方法内首先要判断所传条件是否为空:

    #若为空,直接返回空字符串,不做条件限制,直接查询全部。
    if content == None or content =="":
       return sb

    #若json条件不为空,python解析json转化为字典:

    jsonObject = json.loads(client)//这里jsonObject是一个字典。包含key,value,这就好处理了。

    //下班回家了,未完待续。。。

    11.1

    接下来的得到了包含我们传的条件的字典jsonObject,进行判断具体的条件,下面以第一个条件为例:

    #判断“MainCategories”这个条件的值是否为空
    if jsonObject is not None and jsonObject.get("MainCategories") is not None:
        #此时封装一个方法sqlPackage1()用来组装单个条件的sql
        #详细见:四、单条件内部判断、拼接
        mcSql = sqlPackage1(jsonObject.get("MainCategories"))
        #若MainCategories这个条件不是传的0,则代表不是不限,需要拼接单个条件的sql。
        if not operator.eq(jsonObject.get("MainCategories"),"0"):
            #再次封装一个方法,负责所有条件的处理(让所有条件作为sql语句无缝连接)
            #详细见:五、处理多个条件拼接的桥梁方法
            sb1 = ConnectComponents(sb, mcSql)
    #这里sb1是第一个条件的sql语句

    //下班回家了,未完待续。。。

    四、单条件内部判断、拼接

    以下是组装单个条件的sql方法:

    #机构类型
    def sqlPackage1(str):
        #定义一个集合组装载单个条件的sql
        mainCategoriesSQL=[]
        #获取所传条件
        mainCategories = str.split(",")
        for item in mainCategories:
            #若条件有0直接break结束循环,条件都是不限了,还组装个毛毛。。
            if item == "0":
                break
            #其他情况,根据需求封装,like模糊,=精准,between值范围。。。等等等
            elif item == "1":
                mainCategoriesSQL.append("c.MainCategories LIKE '%%证券%%'")
            elif item == "2":
                mainCategoriesSQL.append("c.MainCategories LIKE '%%股权、创业%%'")
            elif item == "3":
                mainCategoriesSQL.append("c.MainCategories LIKE '%%其他%%'")
    
        return mainCategoriesSQL
    #假如第一个条件是:MainCategories:“1,2,3”,那么返回的sql字符串应该是:
        c.MainCategories LIKE '%%证券%%',c.MainCategories LIKE '%%股权、创业%%',c.MainCategories LIKE '%%其他%%'
    #不要急,下面标题五里会对这个字符串进行处理的。

    五、处理多个条件拼接的桥梁方法

    见以下代码:

    #连接各条件sql
    #这里sb只是个空字符串而已,和上面的总sql没关系,这里的sql是标题四代码里返回的字符串
    def ConnectComponents(sb,sql):
        拼接and条件
        sb+=" AND "
        #加入括号
        sb+="("
        #遍历字符串sql
        for str in sql:
            #拼接单个条件多情况OR语句
            sb=sb+str+" OR "
        
        #拼接右边
        sb+=") "
        #去OR除尾部多余的 OR 和“ )”
        sb_ = sb.rstrip(" OR ) ")
        #最后加上结尾的括号
        sbb = sb_+") "
        
        return sbb
    #若是条件一,此时输出的语句应该是:
     AND (c.MainCategories LIKE '%%证券%%' OR c.MainCategories LIKE '%%股权、创业%%' OR c.MainCategories LIKE '%%其他%%') 
     #后面条件同理

    最后,各个条件同理,组装在一起返回即可:

    sb = sb1+sb2+sb3+sb4+sb5+sb6+sb7+sb8+sb9+sb10
    
    return sb

    未完待续。。。

    12.10

    以上仅仅是sql语句where后面的条件.

    六、完整sql语句最终拼接

    一个完整的sql要有头有尾,仅仅有条件自然是不行的,详见以下代码(含注释):

        #首先保证sql有"头":select * from company c where 1=1,要给一个条件恒等式,防止后面封装的条件没有,我们都知道不推荐select * 查询,这里先这么写,方便查看完整sql
        basicsq = "select * from company c where 1=1"
        #这个addsql(名字瞎起的)就是我们根据所传条件要封装的条件语句了,ReadCompanyJson(content, client)这是个方法,就是前文封装条件的方法
        addsql = ReadCompanyJson(content, client)
        #这句就是保证sql有"尾"咯,可以根据实际需要,加上排序条件
        endsql1 = " order by c.IsId desc "
        #最后这是给sql加上分页条件,这个一般推荐使用,因为数据量太大分页还是很有必要的
        endsql2 = " limit  %s,%s" % (page * pageSize, pageSize)
        #全部语句相加,最终sql就完成了~
        sql = basicsq + addsql + endsql1 + str(endsql2)
        #将最终sql传入执行查询的方法,接下来详细贴代码
        company = screenCompany(sql)
        #最后返回结果,完事了~
        return company

    七、执行sql的方法详情

    #自己定义的方法
    def screenCompany(sql):
        #mysql引擎,也是自己封装的,可以直接调用
        mysql=MysqlHelper("机构产品")
        #参数,这个就不用传了
        params=[]
        #根据sql执行方法查询,得到结果,返回就好了
        result = mysql.get_all(sql, params)

    大功告成~

     

     

    展开全文
  • 主要给大家介绍了关于利用python3筛选excel中特定的行(行值满足某个条件/行值属于某个集合)的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编...
  • 主要为大家详细介绍了python筛选出两文件中重复行的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • python实现按条件筛选数据

    万次阅读 2019-08-13 15:05:44
    查看某一销售人员的销售额 数据存储情况如下图所示: 代码实现查看丽丽的销售额 import pandas as pd df1 = pd . read_excel ( "test.xlsx" , sheet_name = '订单表' ) df2 = df1 [ df1 [ '销售...

    客户需求
    查看某一个销售人员的销售额
    数据存储情况如下图所示:
    在这里插入图片描述
    代码实现查看丽丽的销售额

    import pandas as pd
    
    df1 = pd.read_excel("test.xlsx",sheet_name='订单表')
    df2 = df1[df1['销售人员'] == '丽丽'][['销售人员','销售额']]
    print(df2)
    
    #运行结果
    D:\Python\Anaconda\python.exe D:/Python/test/excel/index.py
      销售人员   销售额
    0   丽丽  1000
    4   丽丽  4000
    9   丽丽   500
    
    Process finished with exit code 0
    
    展开全文
  • Python】dataFrame的多条件筛选

    万次阅读 2019-08-22 17:50:04
    喜欢可以关注【小猪课堂】公众号了解更内容 上代码: import pandas as pd data[(data.var1==1)&(data.var2>10]) 注意括号 注意&连接符 import pandas as pd data[(data[var1]==1)&(data[var2]>10])#也可以实现 ...
  • Python 让 Excel 快速按条件筛选数据 本文即使用python实现excel快速筛选数据 有一张 12 月份的产品销售情况表。 安装所需的 Python 第三方库 xlwings 的特色: xlwings 能够非常方便地读写 Excel 文件中的...
  • Python DataFrame 按条件筛选数据

    万次阅读 2019-05-15 20:26:00
    可以根据筛选条件查看某几列 pdata1[(pdata1[ ' time ' ] )&(pdata1[ ' time ' ] >= 25270)][[ ' x ' , ' y ' ]] 注意多个条件要加括号后在&或|。 转载于:...
  • 2、条件同时满足使用& 3、条件或 | 拓展学习 import pandas as pd import numpy as np df1 = pd.DataFrame(np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]), columns=['a', 'b', 'c'],index=['i1','i...
  • 一是多条件筛选数据,二是将数据写如excel,但是要保存在同一个工作簿的多个sheet。 先上一个完整代码 源数据是这样的: 得到的结果是: 我在做的是,得到不同级距(门槛)下‘人数’,‘占比’,‘达到级距...
  • 张表里面找到想要的关键字,并且生成新的表,每张表内如果有关键字会生成一sheet表会生成列表和关键字的对应行,在数据库里张数据表找关键字时可以导出成Excel快速定位在那张表并且列名是什么。
  • 主要为大家详细介绍了python根据多个文件名批量查找文件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 写的很简单,比之前上传的那个vba的简单,逻辑如下,给定目录,遍历所有doc转换成docx,然后循环读取所有docx里的第一表格,进行重复值筛选,然后写入到excel里,用到了几模块,需要提前导入
  • 场景:集团中心下发本省数据时,并未按地市、业务拆分,现需要按地市、业务拆分并分发到地市。本文利用Python的pandas包实现了以上场景。
  • 这几天在处理数据,其中有遇到需要统计相同用户的某些数据,一开始采用直接暴力匹配,时间复杂度虽然为O(n^2),但因为数据量太,判断条件花销较大,因而处理的非常慢。而后又将数据先排序,并设置条件判断,但这样...
  • 下面这篇文章主要给大家介绍了关于python对excel进行数据剔除操作的相关内容,分享出来供大家参考学习,下面话不说了,来一起看看详细的介绍吧。Python解析Excel时需要安装两包,分别是xlrd(读excel)和xlwt...
  • 执行的代码:1、报错如下:ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().2、应该修改如下(注:别忘记了表达式两边加括号): ...
  • python pandas dataframe 多个变量的筛选

    千次阅读 2017-12-07 17:12:17
    参考文件: ... 多个变量的筛选: import pandas as pd iris = pd.read_excel(r'C:\Users\lhh\Desktop\zlp\iris.xlsx') #选择一个变量 print(iris.loc[iris.Species=='setosa']) #
  • python DataFrame筛选符合特定条件的行

    万次阅读 2020-10-17 16:11:32
    获得a列中值为1的行 data[data['a'].isin([1])] 获得a列中值为1或2的行 data[data['a'].isin([1,2])] 获得a列中值大于1、小于2的行 data[(data['a']<2)&(data['a']>1)]
  • random.sample(str, 3) # 一次取3元素,返回一指定元素数量的列表 # 结果:每次都是3不同元素 ['i', 'g', 'h'] # 第一次执行 ['j', 'd', 'c'] # 第二次执行 ['f', 'j', 'n'] # 第三次执行 方法2:ran.....
  • pandas筛选符合多个条件的方法

    万次阅读 多人点赞 2019-08-30 19:16:52
    时候,我都会面临着筛选出一张表中符合条件的数据,使用pandas可以快速的实现目标,在此记录下自己最常用的筛选手段
  • Python十大装B语法

    万次阅读 多人点赞 2019-11-01 14:29:21
    本文精心筛选了最能展现 Python 语法之精妙的十知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。
  • python es 多条件查询

    千次阅读 2018-12-20 16:42:23
    from elasticsearch import Elasticsearch from elasticsearch import helpers from requests.auth import HTTPBasicAuth from sqlalchemy import create_engine import datetime import time ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 61,709
精华内容 24,683
关键字:

python多个条件筛选

python 订阅