python - 计算一列数据中的精确(不区分大小写)字符串,不包括与其他文本存在字符串匹配的单元格
问题描述
我想计算包含精确字符串的 CSV 文件列中的所有单元格,如果可能的话最好使用 pandas 并使用 Python。我不想包含包含字符串但也包含其他字符的单元格,并且我需要它不区分大小写。
我目前正在使用df['columnName'].str.contains('someString', case=False).sum()
,但它也计算包含其他文本的单元格。我觉得这应该是一个常用的功能,但我似乎无法在网上找到任何适合我正在寻找的东西,所以任何建议都会非常感激。
例子:
如果我的 CSV 文件有这样的内容:
排 | 水果 |
---|---|
1 | 苹果 |
2 | 苹果 |
3 | 苹果和橙子 |
4 | 苹果 |
5 | 香蕉 |
我想计算“Apple”在 Fruit 列中的次数,我希望它输出 2,因为第 1 行和第 4 行满足我的条件,即单元格中只有“Apple”并且不区分大小写。我不希望它计算第 3 行,因为该行不仅仅是“Apple”,而且显然第 2 行和第 5 行与字符串“Apple”不匹配,也不应该被计算在内。
解决方案
尝试str.lower
并value_counts
:
df['Fruit'].str.lower().value_counts()
输出:
apple 2
apples 1
banana 1
apple and orange 1
Name: Fruit, dtype: int64
更新:
要获得特定值,请使用:
df['Fruit'].str.lower().value_counts()['apple']
或者:
>>> df['Fruit'].str.contains('^apple$', case=False).sum()
2
>>>
推荐阅读
- ruby - 在与莺进行可执行战争时无法打开与 repo2.maven.org:80 的 TCP 连接
- spring - Postman 用于将多部分文件数据写入请求的字符编码是什么
- python - 用什么来代替 Cursor 计数?
- django - 如何使用 FBV 以 django 形式初始化数据(变量)?
- reactjs - React Material-ui - 在网格上折叠打破网格
- javascript - 如何将事件对象传递给 React 事件处理函数?
- sql - Order by 在触发器的 Oracle 版本中不起作用
- c# - 将精灵旋转到统一的面矢量
- java - 无法正确转换 JSON 数据
- jquery - 为什么 $(...).mask 不是函数