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

时间:2014-04-07 09:56:08

标签: python 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'列转换为小写,然后一步使用("Holiday|Recess")检查正则表达式.contains

任何帮助将不胜感激

2 个答案:

答案 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)