python - Python Pandas - 在数据框中找到一个子字符串,然后在没有循环的情况下求和
问题描述
目前正在做字符串相等
df['Contains string'] = (df[columns] == 'myString').sum(axis=1)
我怎么能做同样的事情,但找到一个子字符串而不是一个完整的字符串,比如
df['Contains string'] = (df[columns].contains('myString')).sum(axis=1)
但这不起作用。也试过str.contains, series.index, series.find
解决方案
因为Series.str.contains
没有实现DataFrame
使用DataFrame.apply
:
df['Contains string'] = (df[columns].apply(lambda x: x.str.contains('myString'))).sum(axis=1)
或者第一级DataFrame.stack
,sum
谢谢@anky:
df['Contains string'] = df[columns].stack().str.contains('myString').sum(level=0)
或者,如果没有缺失值可能DataFrame.applymap
与 一起使用in
:
df['Contains string'] = (df[columns].applymap(lambda x: 'myString' in x)).sum(axis=1)
推荐阅读
- android - Flutter 后台服务并使用 Firebase 消息打开应用程序
- javascript - Polarion - 向用户显示消息框
- java - 在 UI 上显示值更快 Android JAVA
- python - TypeError:不可散列的类型:下拉菜单中的'set' plotly python
- python - 当我的所有语法都正确时,为什么在 python 中使用'if'会给我语法错误结果?
- python - Microsoft Translator v. 3.0 中没有替代语言检测 JSON 响应
- python - Django REST:项目与应用
- wordpress - Sabre WordPress 集成
- vue.js - Vuejs- if..else 语句中未达到第二个 axios.get
- javascript - 如何在 p5.js 中获得顶视图房子