Pandas中contains方法找不到带括号空格的字符串
在使用contains方法查找包含特定值的记录时,发现凡事特定值有括号空格的,都找不到,自己造了点数据发现还是这样,并且当括号不成对时还会报错,请问这个要怎么解决呢? 你直接搜索对应的字母Key,把带括号的去掉试试 Seawolf 发表于 2019-8-17 23:28你直接搜索对应的字母Key,把带括号的去掉试试
这个只能治标不治本,做产品分析的话很多单品名里都有括号的,比如吉列锋隐剃须刀(3刀头)。如果我对单品名做一个groupby,不可能针对有括号的单品一个一个去搜的。 Lenua7 发表于 2019-8-18 09:06
这个只能治标不治本,做产品分析的话很多单品名里都有括号的,比如吉列锋隐剃须刀(3刀头)。如果我对单 ...
具体问题具体分析嘛,再说现在这个key 本身就有问题,应该统一处理一下再做下一步分析才好 没用过pandas,不懂 我也遇到这样情况,用的是jupyter notebook,不知为啥啊 contains() 可以用正则表达式,你自己琢磨怎么写合适的正则,即可。
或根据情况,考虑用 str.extract()或str.extractall() , 具体用法查官网! 關於 Python Pandas Series.str.contains()
構造: Series.str.contains(pat, case=True, flags=0, na=nan, regex=True)參數:
pat: 字符序列或正則表達式。
case: 如果為True,則區分大小寫。
flags: 要傳遞給re模塊的標誌,例如重新 IGNORECASE。
na: 填寫缺失值的值。
regex: 如果為True,則假定 pat 是一個正則表達式。
正則表達式語法:
() 為特殊字符,描述:標記一個子表達式的開始和結束位置。子表達式可以獲取供以後使用。
範例:
import pandas as pd
import numpy as np
data = pd.Series(["banana", "apple", "orange", np.nan, "())"])
result = data.str.contains(pat = '(banana)')
print(result)UserWarning: This pattern has match groups. To actually get the groups, use str.extract.
result = data.str.contains(pat = '(banana)')
0 True
1 False
2 False
3 NaN
4 False
dtype: object這裡你會發現出現用戶警告:此模式具有匹配組。要實際獲取組,請使用 str.extract。
页:
[1]