如何用pandas透视表统计法语翻译出现次数及多译拆分处理
问题原因说明
你第二次代码报错是因为index和values参数同时指定了french列,出现列名冲突触发维度错误;且你需求是统计不同组合的出现次数,不需要用nunique函数,直接统计条目数即可。
基础需求实现(按原始翻译条目统计)
直接用groupby分组统计即可,代码如下:
df_eng_word_trans = df_user_vocabulary.groupby(['English', 'French'], as_index=False)\ .size()\ .rename(columns={ 'French': 'French translation', 'size': 'Number of times' })
运行后即可得到你预期的按原翻译条目分类的统计结果。
进阶需求实现(拆分多翻译后合并统计)
先对包含多个翻译的条目做拆分、展开处理后再分组统计,代码如下:
# 处理多翻译条目:拆分、展开、去空格 df_processed = df_user_vocabulary.copy() df_processed['French'] = df_processed['French'].str.split(',') df_processed = df_processed.explode('French') df_processed['French'] = df_processed['French'].str.strip() # 分组统计次数 df_eng_word_trans_split = df_processed.groupby(['English', 'French'], as_index=False)\ .size()\ .rename(columns={ 'French': 'French translation', 'size': 'Number of times' })
运行后即可得到拆分翻译后的统计结果,符合你给出的进阶预期输出。
注意:如果你的实际数据表列名为小写的
english、french,把代码中对应的列名替换为小写即可。
内容的提问来源于stack exchange,提问作者BenTapscott
相关产品推荐
相关产品推荐

