Python编程的一个小问题

求Python专家解答:
对文档1的每一行数据分别与文档2的内容进行遍历比对,比如文档1的第1行数据与文档2的第4行前三个数据相同,那么将文档2的第4行数据输出,相当于根据文档1的数据与文档2的数据相同情况,对文档2的每行进行重新排序,应该怎么操作,请指教

img

是将文档的第1行与文档2的第4行,然后将文档的第2行与文档2的第5行…… 如此循环下去比较吗?

循环文档一的数值在文档二的哪一行的哪个区间就可以了

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7558800
  • 这篇博客也不错, 你可以看下Python 条件查找文件,依照一个文件名称作为搜索条件,在另一个文件夹查找相同名称(不包括扩展名)的文件,移动到指定文件夹
  • 你还可以看下python参考手册中的 python- 定义扩展类型:已分类主题- 更多建议
  • 您还可以看一下 刘英老师的Python数据殿堂:数据分析与数据可视化课程中的 概述,数据类型,数组基础小节, 巩固相关知识点
  • 除此之外, 这篇博客: 基于Python的动物识别专家系统中的 3.2.2 整理好规则库之后,我们开始进行推理功能的编写,在这里我们根据相应的规则匹配模式,对用户输入的需要推理的信息进行相应的判断,然后一步步的询问用户相关的规则信息,进行进一步的推理,直到完全匹配出推理信息。代码如下: 部分也许能够解决你的问题。
  • 以下回答由chatgpt基于相关博客总结生成:
    import csv
    
    # 读取文档1的数据
    doc1_data = []
    with open('document1.csv', 'r') as file:
        csv_reader = csv.reader(file)
        for row in csv_reader:
            doc1_data.append(row)
    
    # 读取文档2的数据
    doc2_data = []
    with open('document2.csv', 'r') as file:
        csv_reader = csv.reader(file)
        for row in csv_reader:
            doc2_data.append(row)
    
    # 遍历文档2的每一行数据
    output_data = []
    for row2 in doc2_data:
        # 判断文档1的某一行数据是否与文档2的前三个数据完全相同
        for row1 in doc1_data:
            if row1[:3] == row2[:3]:  # 比较前三个数据
                output_data.append(row2)
                break  # 找到匹配的行后终止循环,避免重复输出
    
    # 根据文档1的数据与文档2的数据相同情况,对文档2的每一行进行重新排序
    output_data.sort(key=lambda x: doc1_data.index(x[:3]))  # 根据在文档1中的索引进行排序
    
    # 输出结果
    with open('output.csv', 'w', newline='') as file:
        csv_writer = csv.writer(file)
        csv_writer.writerows(output_data)
    

    注意事项: 1. 请将文档1和文档2的文件路径修改为实际的文件路径。 2. 假设文档1和文档2都是以逗号分隔的CSV文件,如果不是,请根据实际情况修改csv.readercsv.writer的参数。 3. 假设文档1和文档2的数据格式一致,前三列是需要比较的数据,如果不是,请根据实际情况修改row1[:3]row2[:3]的索引。 4. 如果文档1的数据重复出现,doc1_data.index(x[:3])可能返回第一个匹配的索引,如果需要其他规则进行排序,请根据实际情况修改key参数中的排序规则。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^