python - 如何在熊猫列中保存 str.contains() 的总和?
问题描述
我想保存在我的 csv_file['dialog'] 列中找到 Twilight/Sparkle/Twilight Sparkle 的次数,因为 csv_file['pony_sort'] 中的相应单元格不是暮光之城。我知道这是无效的语法,但是是否有可能以这种方式获得我想要的东西,如果是,我可以改变什么?谢谢!
更新:
example of data:
pony_sort | dialog |
--------------------
twilight | "....twilight"
applejack | "twilight, twilight, twilight!"
在上面这个例子中,第一行不会算“暮光之城”,因为 pony_sort = twilight. 第二行的 count = 3 因为在 pony_sort 列中没有提到暮光,而暮光被提到了三次。
twilight_mentions = csv_file[csv_file['dialog'].str.contains("Twilight|Sparkle|Twilight Sparkle").sum() for i in csv_file[pony_sort] != "twilight"]
解决方案
记住series.str.contains
每行计数一次,不管它包含多少搜索词。你正在寻找的是series.str.count
from re import IGNORECASE
twilight_mentions = (
csv_file[csv_file['pony_sort'].ne('twilight')]['dialog']
.str.count('twilight sparkle|twilight|sparkle', flags=IGNORECASE)
.sum()
)
输出
3
re
如果不需要,可以跳过该标志。
请注意可选模式的顺序,如果您使用示例模式,'twilight|sparkle|twilight sparkle'
则包含的'twilight, twilight sparkle'
行将返回 3 而不是 2。但是,模式会在遇到 时'twilight sparkle|twilight|sparkle'
尝试查找第一个选项。我不知道确切的正则表达式实现,但是需要注意。twilight sparkle
twil...
推荐阅读
- python - Python 驱动程序 - webelement.send_keys(Keys.RETURN) 不发送回车键
- c# - How to add Search Functionality to a dropdownlist in asp.net using Select2.js
- c# - Dapper 将我的日期转换为 01-Jan-01,我不明白为什么?
- angular - 列在pdfmake上被切断
- apache-spark - 使用 spark.shuffle.service.enabled 属性启动工作者
- r - R Function involving two for loops - baseball data
- database - SSMS 不记录应用程序数据
- r - 将 Python 创建的 CSV(制表符分隔)文件读取到 R 时发生错误
- c++ - 学生输入数据未永久存储在 C++ 中的 dat 文件中
- mysql - 从数据库中清除垃圾邮件的正确方法