如何用Python正则筛选DataFrame中以'-A'加1-2位数字结尾的列
解决Pandas提取特定结尾列名的问题
你原来的正则表达式\A+\d完全不符合需求,它是试图匹配以一个或多个字符串开头标记加数字的内容,和你要找的“以'-A'后跟1-2位数字结尾”的列名完全不沾边。
正确的做法是用匹配字符串结尾为'-A'加1到2位数字的正则,代码如下:
data.columns[data.columns.str.contains(r'-A\d{1,2}$')]
正则各部分含义:
-A:匹配列名末尾的固定字符串片段\d{1,2}:匹配1位或2位阿拉伯数字$:强制要求模式位于字符串的最后位置,避免误匹配那些中间包含-Axx但结尾不符合的列
用这个代码就能准确提取你列出的所有目标列:'Hex-A14'、'2-But-1,1,1,3,3-A5'、'Hep-A16'、'2-Pen-1,1,1,3,3-A5'、'Oct-A18'、'Dec-A22'、'Dod-A26'、'(2RS,5R)-Ment-2,6,6-A3'。
内容的提问来源于stack exchange,提问作者Niam45
相关产品推荐
相关产品推荐

