首页 > 解决方案 > 比较 csv 文件(pandas、csv、python)后删除行

问题描述

我正在尝试比较两个 csv 文件并从第二个文件中删除行,如果“组”值不存在作为文件 1 中的“类别 2”元素。但是,我对此没有太多经验,所以我不确定我的方法。我一直在玩熊猫,还尝试了很多其他的东西。我如何改进此代码,以便我可以比较具有不同标题的两列。目前,因为我相信整行都进行了比较,所以没有打印任何行?下面的输出应该有助于澄清事情。提前致谢。

with open('file1.csv', 'r') as t1, open('file2.csv', 'r') as t2:
    fileone = t1.readlines()
    filetwo = t2.readlines()

with open('update.csv', 'w') as outFile:
    for line in filetwo:
        if line in fileone:
            outFile.write(line)

文件 1

All Lists                   
List 1                  
Category 1  Category 2  Category 3  Category 4  Category 5  Category 6
            element1            x   
            element2            x   
            element3            x   
            element4            x   
            element5            x   
List 2                  
Category 1  Category 2  Category 3  Category 4  Category 5  Category 6
            card1           x   
            card2           x   
            card3           x   
            card4           x   
            card5           x   
List 3                  
Category 1  Category 2  Category 3  Category 4  Category 5  Category 6
            box1            x   
            box2            x   
            box3            x   
            box4            x   
            box5            x   

文件 2

name                                        id
job                                     number
address                                 none    
address                                 xyz 
address                                 date    
            company name                            
            quarter report                          
            date                            
Group   Manager     quarter1    quarter2    quarter3    quarter4                total
element2    A           $          $           $           $                      $
notElement  B           $          $           $           $                      $
card3       C           $          $           $           $                      $
box4        D           $          $           $           $                      $
element3    E           $          $           $           $                      $
box1        F           $          $           $           $                      $
notElement  B           $          $           $           $                      $
notElement  C           $          $           $           $                      $             
card7       D           $          $           $           $                      $
element4    E           $          $           $           $                      $
                                        
               quarter1 quarter2 quarter3 quarter4                      
average           $        $                                
results          none     none                              
missed                     1                                
missed                     1            

所需的 csv 文件:

Group   Manager     quarter1    quarter2    quarter3    quarter4                total
element2    A           $          $           $           $                      $
card3       C           $          $           $           $                      $
box4        D           $          $           $           $                      $
element3    E           $          $           $           $                      $
box1        F           $          $           $           $                      $
card7       D           $          $           $           $                      $
element4    E           $          $           $           $                      $

标签: pythonpandasdataframecsv

解决方案


推荐阅读