我将尝试用一个简单的例子来描述我的问题。
我有一个包含许多列的 csv 文件。此列的标题之一是“名称”。
在此列“名称”中,我只需要重复名称“约翰”的次数。
例如,我的“名称”列如下:
names
John
John M
Mike John
Audrey
Andrew
对于这种情况,我需要一个使用 pandas 的 python 脚本来获取 3 的值,因为单词“John”重复了 3 次。
这些是我正在使用的代码:
from_csv = pd.read_csv(r'csv.csv', usecols = ['names'] , index_col=0, header=0 )
times = from_csv.query('names == "John"').names.count()
但它只返回 1,因为只有一行只有 John。
我尝试过使用:
times = from_csv.query('names == "*John*"').names.count()
但没有成功。
对于这种特殊情况,如何获得 3?谢谢
最佳答案
使用 str.contains
df.Name.str.contains('John').sum()
Out[246]: 3
或者我们使用 list
和 map
和 in
sum(list(map(lambda x : 'John' in x,df.Name)))
Out[248]: 3
关于python - 如果单词在 Pandas 的特定列中,如何获取一 block 的次数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50082095/