Python 如何使用不同的csv文件覆盖csv文件中的列

Python 如何使用不同的csv文件覆盖csv文件中的列,python,csv,join,merge,pandas,Python,Csv,Join,Merge,Pandas,我对python非常陌生,我完全被卡住了!我有两个csv文件,我正试图合并成一个csv文件。下面是每个文件的前几行,包括实际的输出文件和我想要得到的输出文件。 注意:我意识到这些文件并不完全匹配(即CO_Num不一样),但我只是抓住了每个文件的前几行,它们没有顺序 plat1.csv: District,Complex_ID,Structure_Num,Area,Block,Name,Long,Latitude,Operator,Status,Comments,CO_Num 4,90100,1

我对python非常陌生,我完全被卡住了!我有两个csv文件,我正试图合并成一个csv文件。下面是每个文件的前几行,包括实际的输出文件和我想要得到的输出文件。 注意:我意识到这些文件并不完全匹配(即CO_Num不一样),但我只是抓住了每个文件的前几行,它们没有顺序

plat1.csv: 
District,Complex_ID,Structure_Num,Area,Block,Name,Long,Latitude,Operator,Status,Comments,CO_Num
4,90100,1,AC, 24, SSMANIFO,  -94.76940277,  26.95505833,,,,     ,      
4,183,1,AC, 25,  A-Hoover Spar,  -94.68872137,  26.93905139,,,,00276, 4825   
4,2008,1,AC, 857, A(Perdido),  -94.89791489,  26.12890071,,,,00689, 7835  


COMPAC.csv:
CO_Num,Operator
03249, LOUISIANA LAND AND EXPLORATION COMPANY LLC     
03267,145 OG HOLDINGS LLC                             
03271,157 OG HOLDINGS LLC             

plat2.csv
 ,90222,1,WR, 469, SS Manifold,  -90.53058044,  26.51964805,,,,     ,      
4,183,1,AC, 25,  A-Hoover Spar,  -94.68872137,  26.93905139,,,,00276, 4825   
4,10500,1,GA, 209, A,    -94.545972,    29.130363,,,,00276,   58 

desired plat2.csv
District,Complex_ID,Structure_Num,Area,Block,Name,Long,Latitude,Operator,Status,Comments,CO_Num
4, 90100,1,AC,24, SSMANIFO,-94.76940277,26.95505833,,,,                                                                
4, 183,1,AC,25,A-Hoover Spar,-94.68872137,26.93905139,EXXON MOBIL CORPORATION,,,00276                    
4,2008,1,AC, 857, A(Perdido),-94.89791489,26.12890071,SHELL OFFSHORE INC.,,,00689
我需要根据CO_Num列加入文件。我遇到的问题是运算符列。在plat1.csv中,该列为空,我需要使用COMPAC.csv文件来填充它。我尝试使用下面的代码,但没有成功。plat2.csv中的操作员字段仍然为空

import pandas as pd

c=pd.read_csv("c:/platform/plat1.csv")

d=pd.read_csv("c:/platform/COMPAC.csv")

merged=c.merge(d, how='left')

merged.to_csv("c:/platform/plat2.csv", index=False)
我还应该提到,并非plat1.csv中的每一行都有一个CO_Num。我认为这可能是问题的一部分,但当我在将plat1.csv和COMPAC.csv剪切到每一行(显然匹配CO_Numb)后重新运行时,它仍然不起作用

在那之后,我试图用剪辑过的文件重新运行它,但我从plat1.csv中删除了Operator列。操作成功,但我需要运算符列位于plat1.csv中的位置,而不是在末尾

基本上,我需要一种连接/合并这两个csv文件的方法,其中plat1.csv中的运算符列被COMPAC.csv文件中的内容覆盖,如果没有CO_Num,则该行在运算符列中为空(所有其他列保持不变)


再说一次,我在这方面很新,或者如果有什么不合理的地方,或者如果你有问题,请让我知道

您不应该在合并中包含c的空运算符列(包括它意味着在CO_Num和Operator上合并,这意味着没有共享键):


你必须使用python吗?是的,老板说必须使用python。不知道为什么,但我只是按照订单做谢谢你的回复!我试过你的建议,但似乎不起作用。运算符列仍然为空,列的顺序现在不同。我需要命令保持plat1.csv中的状态,但我得到的是:区域、区块、数量、评论、复杂ID、地区、纬度、长度、名称、状态、结构数量、深度、,Operator@Abby运算符列仍然为空??那太令人困惑了。你能在你的问题后面加上CSV的标题(或一些显示这一点的示例框架)吗。。。我不认为它应该是空的,除非没有匹配的CO_Num。我返回并从每个文件中添加了几行到我的问题。当我试图从上面运行您编辑的代码时,它告诉我“无法运行脚本-语法错误-无效语法”
merged = c[col for col in c.columns if col != 'Operator'].merge(d, how='left')