努力的小bai 2023-08-31 13:58 采纳率: 0%
浏览 20
已结题

Python excel多文件查询问题

项目背景:
一位萌萌哒测试,自学python,因为对比翻译太过耗费时间,希望可以节省点时间,希望各位多多帮助,感谢

需求描述:
因为软件比较复杂,人工对比翻译后的rc比较繁琐,所以想弄一个工具代替人工操作。

思路描述:
先将rc文件转换为txt文件,随后将中文rc文件的每行数据写入到一个表格excel1,将外文的rc文件每行数据写入到另一个表格excel2,并将两个表格合并,此时,这个表格中含有两列数据暂定名为,一列为中文rc文件中每一行的数据,另一列为外文rc文件中的每一行数据。然后对比这两个RC文件,因为包含部分相同的内容,所以需要把相同的内容去除。总体的翻译excel3表格中,中外文是对应的,类似如下图的样子,现在需要把处理后的两个RC文件生成的excel1、excel2表格内容,根据中文一行一行的在如下总体翻译表格excel3中搜索,然后再获取excel3右侧翻译后的俄语,将获取到的俄语再在excel2表格中的俄语列进行搜索,查看是否存在,若存在则证明RC文件翻译正确,若不存在,将不存在的中文记录在一个新的excel3表格中,后续人工核验。

需要解答的:
现在excel1和excel2均已完成数据处理,需要进行搜索比对了,没什么思路,希望能提供些思路

这个是excel1

img

这个是excel2

img

这个是excel3

img

希望能提供下思路、方法或者代码,万分感谢!

  • 写回答

14条回答 默认 最新

  • Leodong. 2023-08-31 14:16
    关注
    获得0.45元问题酬金

    该回答通过自己思路及引用到GPTᴼᴾᴱᴺᴬᴵ搜索,得到内容具体如下:根据你的需求描述,你想要使用Python对两个Excel文件进行搜索和比对。以下是一个可能的思路和代码示例来实现你的需求:

    1. 导入所需的库:

      import pandas as pd
      
    2. 读取 Excel 文件并获取数据:

      excel1_data = pd.read_excel('excel1.xlsx')
      excel2_data = pd.read_excel('excel2.xlsx')
      excel3_data = pd.read_excel('excel3.xlsx')
      

      请确保将 excel1.xlsxexcel2.xlsxexcel3.xlsx 替换为你的实际文件名和路径。

    3. 对比两个 RC 文件的中文和外文内容:

      matched_data = pd.merge(excel1_data, excel2_data, on='中文列名', how='inner')
      

      在上述代码中,将 中文列名 替换为你的 Excel 表中包含中文的列的列名。这将执行一个内连接操作,找到中文和外文列中的匹配项。

    4. 搜索并比对翻译后的俄语:

      for index, row in matched_data.iterrows():
       chinese_text = row['中文列名']
       russian_text = row['俄语列名']
       result = excel3_data[excel3_data['中文列名'] == chinese_text]
       if not result.empty and russian_text in result['俄语列名'].values:
           print(f"中文:{chinese_text},俄语:{russian_text},匹配成功")
       else:
           print(f"中文:{chinese_text},俄语:{russian_text},匹配失败")
      

      请将 '中文列名''俄语列名' 替换为实际的列名。在上述代码中,我们使用了 iterrows() 方法遍历每一行数据,并使用条件语句检查翻译后的俄语是否存在于 Excel3 中。

    5. 将不匹配的记录保存到新的 Excel 文件中:

    mismatched_data = pd.DataFrame(columns=['中文列名', '俄语列名'])
    
    for index, row in matched_data.iterrows():
        chinese_text = row['中文列名']
        russian_text = row['俄语列名']
        result = excel3_data[excel3_data['中文列名'] == chinese_text]
        if not result.empty and russian_text not in result['俄语列名'].values:
            mismatched_data = mismatched_data.append({'中文列名': chinese_text, '俄语列名': russian_text}, ignore_index=True)
    
    mismatched_data.to_excel('mismatched_data.xlsx', index=False)
    

    下面是一个完整的代码示例,包括以上提到的所有步骤:

    import pandas as pd
    
    # 读取 Excel 文件
    excel1_data = pd.read_excel('excel1.xlsx')
    excel2_data = pd.read_excel('excel2.xlsx')
    excel3_data = pd.read_excel('excel3.xlsx')
    
    # 对比两个 RC 文件的中文和外文内容
    matched_data = pd.merge(excel1_data, excel2_data, on='中文列名', how='inner')
    
    # 搜索并比对翻译后的俄语
    for index, row in matched_data.iterrows():
        chinese_text = row['中文列名']
        russian_text = row['俄语列名']
        result = excel3_data[excel3_data['中文列名'] == chinese_text]
        if not result.empty and russian_text in result['俄语列名'].values:
            print(f"中文:{chinese_text},俄语:{russian_text},匹配成功")
        else:
            print(f"中文:{chinese_text},俄语:{russian_text},匹配失败")
    
    # 将不匹配的记录保存到新的 Excel 文件中
    mismatched_data = pd.DataFrame(columns=['中文列名', '俄语列名'])
    
    for index, row in matched_data.iterrows():
        chinese_text = row['中文列名']
        russian_text = row['俄语列名']
        result = excel3_data[excel3_data['中文列名'] == chinese_text]
        if not result.empty and russian_text not in result['俄语列名'].values:
            mismatched_data = mismatched_data.append({'中文列名': chinese_text, '俄语列名': russian_text}, ignore_index=True)
    
    mismatched_data.to_excel('mismatched_data.xlsx', index=False)
    

    请确保将 'excel1.xlsx''excel2.xlsx''excel3.xlsx' 替换为你的实际文件名和路径。同样,将 '中文列名''俄语列名' 替换为你的实际列名。

    此代码将依次执行读取 Excel 文件、对比中文和外文内容、搜索并比对翻译后的俄语,最后将不匹配的记录保存到名为 'mismatched_data.xlsx' 的新 Excel 文件中。

    希望这个完整的代码示例对你有帮助。


    如果以上回答对您有所帮助,点击一下采纳该答案~谢谢

    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 9月8日
  • 创建了问题 8月31日

悬赏问题

  • ¥20 python忆阻器数字识别
  • ¥15 无法输出helloworld
  • ¥15 高通uboot 打印ubi init err 22
  • ¥20 PDF元数据中的XMP媒体管理属性
  • ¥15 R语言中lasso回归报错
  • ¥15 网站突然不能访问了,上午还好好的
  • ¥15 有没有dl可以帮弄”我去图书馆”秒选道具和积分
  • ¥15 semrush,SEO,内嵌网站,api
  • ¥15 Stata:为什么reghdfe后的因变量没有被发现识别啊
  • ¥15 振荡电路,ADS仿真