如何在Pandas中统计单个标签及指定字符串的出现频次?
解决标签统计与指定字符串计数问题
一、单独统计每个标签的出现次数
你用df['tags'].value_counts()得到的是整个标签组合的频次,要拆分单个标签统计,只需用explode()方法把列表型的标签拆成独立行,再执行计数:
# 拆分列表型标签为单行单标签,再统计每个标签的频次 tag_counts = df['tags'].explode().value_counts() print(tag_counts)
这样就能得到每个标签单独的出现次数,比如示例中的Addiction、Health等标签会被分别统计,而非作为组合整体计数。
二、统计Pandas字符串数组中指定字符串的出现次数
分两种场景处理:
1. 统计包含指定字符串的元素数量
如果要计算有多少个单元格包含目标字符串(无论单元格内该字符串出现几次),用str.contains()配合sum():
target_str = 'Health' # 若tags是列表类型,先转字符串再判断;若本身是字符串列,直接用df['column'].str.contains() count = df['tags'].astype(str).str.contains(target_str).sum() print(f"包含'{target_str}'的元素数量:{count}")
2. 统计指定字符串的总出现次数(含单元格内多次出现的情况)
如果要统计该字符串在所有单元格中的总出现次数,用str.count()配合sum():
target_str = 'Health' # 同样,列表类型需先转字符串 total_count = df['tags'].astype(str).str.count(target_str).sum() print(f"'{target_str}'总出现次数:{total_count}")
内容的提问来源于stack exchange,提问作者IvonaK
相关产品推荐
相关产品推荐

