我有以下代码
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'列转换为小写,然后一步使用("Holiday|Recess")
检查正则表达式.contains
?
任何帮助将不胜感激
答案 0 :(得分:25)
private["ISH"] = private.HolidayName.str.contains("(?i)holiday|recess")
正则表达式模式中的(?i)
告诉re
模块忽略大小写。
您收到错误的原因是Series对象没有contains
方法;相反,Series.str
属性具有contains
方法。所以你可以避免错误:
private["ISH"] = private.HolidayName.str.lower().str.contains("holiday|recess")
答案 1 :(得分:3)
我参加聚会有点晚了,但是您可以使用keyarg case:bool,默认为True,如果为True,则区分大小写。
private["ISH"] = private.HolidayName.str.contains("holiday|recess", case=False)
public["ISH"] = public.HolidayName.str.contains("holiday|recess", case=False)