Pandas将字符串对象转换为小写并检查字符串

2024-04-25 00:13:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我有下面的代码

import pandas as pd
private = pd.read_excel("file.xlsx","Pri")
public = pd.read_excel("file.xlsx","Pub")
private["ISH"] = private.HolidayName.str.lower().contains("holiday|recess")
public["ISH"] = public.HolidayName.str.lower().contains("holiday|recess")

我得到以下错误:

AttributeError: 'Series' object has no attribute 'contains'

是否仍要将“HolidayName”列转换为小写,然后使用.contains一步检查正则表达式("Holiday|Recess")


Tags: 代码readprivatepublicxlsxexcellowerfile
2条回答

我去派对有点晚了,但你可以用钥匙 case:bool,默认为True,如果为True,则区分大小写。

private["ISH"] = private.HolidayName.str.contains("holiday|recess", case=False)
public["ISH"] = public.HolidayName.str.contains("holiday|recess", case=False)
private["ISH"] = private.HolidayName.str.contains("(?i)holiday|recess")

regex模式中的(?i)告诉re模块忽略case。


出现错误的原因是Series对象没有contains方法;而Series.str属性有contains方法。这样您就可以避免以下错误:

private["ISH"] = private.HolidayName.str.lower().str.contains("holiday|recess")

相关问题 更多 >