0 1 2 3 4 5
word
</s> 0.001129 -0.000896 0.000319 0.001534 0.001106 -0.001404
in 0.070312 0.086914 0.087891 0.062500 0.069336 -0.108887
for -0.011780 -0.047363 0.044678 0.063477 -0.018188 -0.063965
that -0.015747 -0.028320 0.083496 0.050293 -0.110352 0.031738
is 0.007050 -0.073242 0.171875 0.022583 -0.132812 0.198242
我有这个 DataFrame,我想获取索引(“word”)包含特定字符串(大小写不变)的行。我试过了
df[df.index.str.lower().contains("lebron") == True]
它给出了 KeyError: False。虽然
df[df.index.str.contains("Lebron") == True]
工作正常。
在这种情况下如何使用lower()?
请您参考如下方法:
如果您正在执行简单的子字符串检查,建议不要使用正则表达式比较(即,不要将 str.lower 与正则表达式一起使用)。您可以在此处使用列表理解:
df[['lebron' in x.lower() for x in df.index]]
如果索引中可能出现 NaN,您可以修改解决方案来处理它们:
df[[pd.notna(x) and 'lebron' in x.lower() for x in df.index]]
没有正则表达式,可以相应地使用str.contains:
df[df.index.str.lower().str.contains("lebron", regex=False)]
如果您没有 NaN,则可以省略尾随 == True。否则,
df[df.index.str.lower().str.contains("lebron", regex=False) == True]
将正常工作。
