我想使用contains()方法中的regex根据列的值从Pandas数据框中提取行。
如果"COMPTYPE"列包含contains()方法中提到的任何字符串值,我将使用以下代码行从数据框中提取行
df = df[df['COMPTYPE'].astype(str).str.contains('MCCB|ACB|VCB|CONTACTOR', regex=True)]
它工作正常,但它没有选择那些在'COMPTYPE'列中有MccB或Vcb或Contactor或acb等值的行。如何使用此命令,以便它将不考虑字符串值的大小写而选择行。
输入:
| 博尔迪布诺|子组件_IBNO|部件类型|
| - ------|- ------|- ------|
| 小行星104444001|小行星9044444001|ACB|
| 小行星104444001|小行星9044444002|继电器|
| 小行星104444001|小行星9044444003| Jmeter |
| 小行星104444001|小行星9044444004|MCCB/MPCB|
| 小行星104444001|小行星9044444005|vcb|
| 小行星104444001|小行星9044444006|MCCB/MPCB|
| 小行星104444001|小行星9044444007|acb|
| 小行星104444001|小行星9044444008|多氯联苯|
| 小行星104444001|小行星9044444009|MCCB/MPCB|
| 小行星104444001|小行星90444440|电源接触器|
| 小行星104444001|小行星9044444011|电源接触器|
| 小行星104444001|小行星90444440一二|控制接触器|
| 小行星104444001|小行星9044444013|真空断路器|
预期输出如下所示,
| 博尔迪布诺|子组件_IBNO|部件类型|
| - ------|- ------|- ------|
| 小行星104444001|小行星9044444001|ACB|
| 小行星104444001|小行星9044444004|MCCB/MPCB|
| 小行星104444001|小行星9044444005|vcb|
| 小行星104444001|小行星9044444006|MCCB/MPCB|
| 小行星104444001|小行星9044444007|acb|
| 小行星104444001|小行星9044444008|多氯联苯|
| 小行星104444001|小行星9044444009|MCCB/MPCB|
| 小行星104444001|小行星90444440|电源接触器|
| 小行星104444001|小行星9044444011|电源接触器|
| 小行星104444001|小行星90444440一二|控制接触器|
| 小行星104444001|小行星9044444013|真空断路器|
但是,我得到了以下输出,
| 博尔迪布诺|子组件_IBNO|部件类型|
| - ------|- ------|- ------|
| 小行星104444001|小行星9044444001|ACB|
| 小行星104444001|小行星9044444004|MCCB/MPCB|
| 小行星104444001|小行星9044444005|MCCB/MPCB|
| 小行星104444001|小行星9044444006|MCCB/MPCB|
| 小行星104444001|小行星90444440|真空断路器|
怎么办?请帮帮忙!
1条答案
按热度按时间laawzig21#
只需使用
flags=re.IGNORECASE
作为str.contains
的参数或使用@JoanLara建议的case=False
:或大写前一列: