我有一个有4列的数据帧(300000行)。我有一个列“Model”,其中有以下示例值。在
在model字段中,任何类似(A,B)的值都意味着它可以是A或B。 例如,字段2表示可以有4个组合 CPL40AUP50B400 CPL40AUP50BMS CPL40AUP50W400 CPL40AUP50WMS公司 字段6表示cpl40 AUP“XXXX”“XXXXX”-任何时候有超过2个连续的XXX,这意味着在这些位置上接受任何字符。Number of XXX=该位置的字符数
附加了示例数据帧。在
附上样本作为字典
{型号:{152001:'CPL40AUP50(B,W)(Blank,EM,PCEM,MSEM)', 152103:“CPL40AUP50(B,W)(400,毫秒)”, 152192:'CPL40AUP50(B,W)PC', 152196:'CPL40AUP50(B,W)PCMS', 291083:'CPL40AUP50[B,W][Blank,400]'}, '产品Id':{152001:'PGK58TGD', 152103:'P5QBAPTD', 152192:'PFNJED7R', 152196:'PYSCGR1W', 291083:'PH57RZA3'}, '报告CCT':{152001:5000.0, 152103:5000.0, 152192:5000.0, 152196:5000.0, 291083:5000.0}, '报告瓦数':{152001:41.07, 152103:41.07, 152192:41.07, 152196:41.07, 291083:40.0}
第1部分 我想搜索存储在变量中的型号。 a=CPL40AUP50B400,并返回整个行,其中可能存在此可能的组合。 我只想找到精确的搜索词并打印行,而不是部分字符串匹配
我把所有的“[]”方括号都换成了括号“()” 我把“,”逗号改成“|”
我这样做是为了使用regex函数。但我无法继续。在
第二部分 找到什么时候有XXX。如果有XXX,则表示可以有任何字符而不是XXX。在
示例:6)CPL40AUP XXXX XXXXX
是指CPL40AUP AAAA AAAAA或CPL40AUP BBBB 11111
任何东西都可以代替XXX,所以我必须找到一行,其中有一个型号与除XXX以外的所有其他字符匹配
首先,设置要测试的数据帧:
对于第一个问题,获取包含特定字符串(例如“PC”)的行,请执行以下操作:
^{pr2}$str.contains("PC")
返回一个布尔序列,如果该行在“Model”字段中包含“PC”,则该序列为真。然后df[ mask ]
返回mask为True的行。在“PC”是一个正则表达式模式,而不仅仅是字面字母。因此,对于第二个问题,下面将获得包含两个或多个连续X字符的任何行:
相关问题 更多 >
编程相关推荐