Pandas将字符串对象转换为小写并检查字符串
我有下面这段代码:
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")
呢?
2 个回答
24
我来得有点晚,不过你可以使用关键字参数 keyarg,类型是布尔值,默认值是 True。如果设置为 True,就会区分大小写。
private["ISH"] = private.HolidayName.str.contains("holiday|recess", case=False)
public["ISH"] = public.HolidayName.str.contains("holiday|recess", case=False)
94
private["ISH"] = private.HolidayName.str.contains("(?i)holiday|recess")
正则表达式中的 (?i)
是告诉 re
模块忽略大小写的意思。
你遇到错误的原因是因为 Series 对象没有 contains
这个方法;实际上是 Series.str
属性有这个方法。所以你可以通过以下方式避免这个错误:
private["ISH"] = private.HolidayName.str.lower().str.contains("holiday|recess")