python-3.x - 错误:系列'对象没有属性'包含'”
问题描述
我搜索我的 DataFrame 的所有列(第一列除外)并添加一个新列 'Matching_Columns' 与匹配列的名称,当我尝试在测试我的模式是否包含在一行中之前删除所有点时,我收到一个错误.
这有效:
keyword='123456789'
f = lambda row: row.apply(str).str.contains(keyword ,na=False, flags=re.IGNORECASE)
df1 = df.iloc[:,1:].apply(f, axis=1)
df.insert(loc=1, column='Matching_Columns', value=df1.dot(df.columns[1:] + ', ').str.strip(', '))
这给了我一个错误:
keyword='123456789'
f = lambda row: row.apply(str).str.replace(".","").contains(keyword ,na=False, flags=re.IGNORECASE)
df1 = df.iloc[:,1:].apply(f, axis=1)
df.insert(loc=1, column='Matching_Columns', value=df1.dot(df.columns[1:] + ', ').str.strip(', '))
错误:
AttributeError: ("'Series' object has no attribute 'contains'", 'occurred at index 0')
我无法弄清楚这有什么问题。看起来str.replace(".","")
是导致错误。
任何帮助,将不胜感激
解决方案
应该是str.contains
因为contains
是str
not的访问器series
。
因此,为了更好地解释这一点,str.replace
返回一个series
对象。您已将功能注入contains
到系列中。这就是你收到错误的原因'Series' object has no attribute 'contains'
f = lambda row: row.apply(str).str.replace(".","").str.contains(keyword ,na=False, flags=re.IGNORECASE)
推荐阅读
- java - activemq webconsole 失败
- oracle-apex - APEX_MAIL.send - 更改主机后无法接收邮件
- python - 使用 Python 将 Excel 转换为 JSON
- ios - 无法找到由 `RNCPicker` 1.6.0 和 React Native 0.59 依赖的`React-Core` 规范
- r - gitlab CI 从私有存储库安装 R 包
- java - 确保文件未在 Java 中打开,如果未创建则不会触发异常
- python - 使用 Python 提取列和行数据
- javascript - 如何组织用于比较表的数据库,在创建后生成主索引?(JS + Node + MySQL + 续集)
- ruby - Ruby - 评估字符串中的转义插值部分
- node.js - 无法使用纱线 ENOENT 自述文件