如何统计df1中各值在df2中的非精确匹配出现次数
解决方案
首先需要将df2中每行的用户列表拆分并展开,再统计每个用户的出现次数,最后映射到df1中,具体步骤如下:
步骤1:处理df2数据,拆分并展开用户列表
使用字符串拆分和堆叠操作,把df2中每行的逗号分隔用户拆分成单个用户的独立行:
# 按逗号(含可选空格)拆分每行用户,展开为单列 expanded_users = df2['users'].str.split(',\s?', expand=True).stack()
步骤2:统计每个用户的出现次数
对展开后的用户序列做频次统计:
user_counts = expanded_users.value_counts()
步骤3:映射到df1并补全缺失值
将统计结果映射到df1,对df2中未出现的用户填充0:
# 假设df1的列名为'user',替换为你实际的列名即可 df1['Newcount'] = df1['user'].map(user_counts).fillna(0).astype(int)
最终输出
执行后df1会新增Newcount列,结果如下:
user Newcount 0 user1 3 1 user2 2 2 user3 0 3 user4 1 4 user5 2
内容的提问来源于stack exchange,提问作者Mika
相关产品推荐
相关产品推荐

