我的df看起来像这样:
print df_raw
Name exp1
Name
UnweightedBase 1364
Base 1349
BFC_q5a1 34.18%
BFC_q5a2 2.93%
BFC_q5a3 1.86%
BFC_q5a4 1.93%
BFC_q5a5 0.84%
我想使用行标签从上面的数据框构建子集但是,我想使用re.IGNORECASE但我不确定如何。
没有re.IGNORECASE,代码如下所示:
subset_df = df_raw.loc[df_raw.index.isin(['BFC_q5a4', 'BFC_q5a5'])]
如何更改我的代码以使用re.IGNORECASE获取以下代码:
subset_df = df_raw.loc[df_raw.index.isin(['bFc_q5A4', 'BfC_Q5a5'])]
注意 - 我不想使用str.lower或str.upper来执行此操作。
谢谢!
答案 0 :(得分:1)
我不知道以不区分大小写的方式搜索索引标签的任何简洁方法(df.filter
很有用,但不幸的是似乎无法忽略大小写。)
要解决此问题,您可以使用可以忽略大小写的系列方法pd.Series.str.contains
:
subset_df = df[pd.Series(df.index).str.contains(regex, case=False).values]
在系列中转换索引,然后应用正则表达式匹配。在这种情况下,regex
可能类似于'bFc_q5A4|BfC_Q5a5'
。大小写被忽略(使用case=False
)。