python - 如何在过滤数据时结合 Isin , contains ,区分大小写
问题描述
我有一个数据框,并且有多个条件来过滤该数据,例如:
state = Andhra Pradesh, Uttar Pradesh, Madya Pradesh, Karnataka, Telangana
和
field_id = 23234,23235,34342,34343...
Input:
--------
field_id,state,latitude,longitude
23234,Uttar Pradesh,28.05990445,78.34249247
23235,Uttar Pradesh,27.6206712,78.7132515
23236,Uttar Pradesh,27.95378227,79.04653615
23237,Uttar Pradesh,28.63232205,78.5763061
34342,Telangana,18.71517059,78.70715893
34343,Telangana,18.11666882,79.3873906
34344,Telangana,18.4527501,79.21027678
45452,Madhya Pradesh,21.70770808,75.67139279
45453,Madhya Pradesh,21.75613982,76.29656126
45454,Madhya Pradesh,22.05077277,79.2375098
56562,Karnataka,12.38318394,76.02965431
56563,Karnataka,12.38297092,76.02957524
56564,Karnataka,14.26369026,75.43180631
67672,Andhra Pradesh,16.83612945,80.99260486
67673,Andhra Pradesh,16.83277887,80.99537748
67674,Andhra Pradesh,16.83311322,80.99560818
我试过了
state = Andhra Pradesh,Madhya Pradesh,Karnataka
State1 = State.split(',')
dsna = dsna.loc[dsna['State'].isin(State1)]
哪个适用于完全匹配的情况
field_id = 23234,34345
field_id1 = field_id.split(',')
dsna = dsna.loc[dsna['field_id'].isin(field_id1)]
这里还过滤了确切的数据框
这里 dsna 是我的数据框,我将附加该数据框或表格的 csv
dsna = dsna.loc[dsna['field_id'].isin(field_id1)]
dsna = dsna.loc[dsna['State'].isin(State1)]
我想要基于正则表达式格式的过滤数据,例如 state = pradesh,telangana(我给了小写字母)它应该过滤与这些州相关的所有数据并列出纬度和经度类似的方式field_id= 232,343,454
应该过滤与预期数据应该相关的数据的所有字段正则表达式和区分大小写并过滤多个值任何熊猫功能都有助于做到这一点因为我的数据已经在数据框中
解决方案
通过使用熊猫
dsna = dsna[dsna['State'].str.contains('|'.join(State),
case=False)]
我曾经|
在整个字符串中搜索。
推荐阅读
- javascript - 如何将包含日期的一维数组划分为几个较小的数组(二维数组)
- javascript - 使用参数调用父函数
- javascript - 检查对象中的数组内的数字是否
- java - 当我尝试在 Vaadin 视图中初始化方法时,我得到 java.lang.NullPointerException: null
- azure - Azure SQL - 使用 ADO.NET 时的默认隔离级别
- java - 如何将类型作为变量传递?
- reactjs - Passport faillureRedirect 没有重定向,而是破坏了我的 React 应用程序
- excel - 单线(无 VBA)评估 IP 地址在哪个 VLAN 中
- java - 在java中使用递归的河内塔
- java - 如何使用 Swagger codegen 开发一个简单的 REST 客户端?