Pandas 数据框列值不区分大小写替换 where

2023-11-26

pandas.DataFrame.replace 是否有不区分大小写的版本?https://pandas.pydata.org/pandas-docs/version/0.21/ generated/pandas.DataFrame.replace.html

我需要根据“where label == a or label == b or label == c”形式的不区分大小写的条件替换列中的字符串值。


其他一些答案的问题是它们不适用于所有数据帧,仅适用于系列或可以隐式转换为系列的数据帧。我明白这是因为.str构造存在于 Series 类中,但不存在于 Dataframe 类中。

要使用 Dataframes,您可以使用以下命令使正则表达式不区分大小写(?i)扩大。我不相信这在所有正则表达式中都可用,但它适用于 Pandas。

d = {'a':['test', 'Test', 'cat'], 'b':['CAT', 'dog', 'Cat']}
df = pd.DataFrame(data=d)

    a       b
0   test    CAT
1   Test    dog
2   cat     Cat

然后像平常一样使用替换,但使用(?i)扩大:

df.replace('(?i)cat', 'MONKEY', regex=True)

    a       b
0   test    MONKEY
1   Test    dog
2   MONKEY  MONKEY
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Pandas 数据框列值不区分大小写替换 where 的相关文章