无法使用pandas

时间:2017-06-08 20:43:43

标签: python pandas dataframe merge

尽管多次尝试,但我没有成功对两个数据帧进行简单的合并操作。下面的代码返回

  

KeyError:'CODE'

关于合并功能。

注1:为了使帖子可重现,StringIO在这里使用,每个CSV中只有两行,但在现实生活中,我从具有数千条记录的文件中读取。
注意2:注意每行末尾的','(分隔符):我的CSV文件格式错误,但这是实际文件的方式。 注3:我使用的是Python 2.7

from StringIO import StringIO
import pandas as pd

master = StringIO("""N-NUMBER,SERIAL NUMBER,MFR MDL CODE,ENG MFR MDL,YEAR MFR,TYPE REGISTRANT,NAME,STREET,STREET2,CITY,STATE,ZIP CODE,REGION,COUNTY,COUNTRY,LAST ACTION DATE,CERT ISSUE DATE,CERTIFICATION,TYPE AIRCRAFT,TYPE ENGINE,STATUS CODE,MODE S CODE,FRACT OWNER,AIR WORTH DATE,OTHER NAMES(1),OTHER NAMES(2),OTHER NAMES(3),OTHER NAMES(4),OTHER NAMES(5),EXPIRATION DATE,UNIQUE ID,KIT MFR, KIT MODEL,MODE S CODE HEX,
1    ,1071                          ,3980115,54556,1988,5,FEDERAL AVIATION ADMINISTRATION                   ,WASHINGTON REAGAN NATIONAL ARPT  ,3201 THOMAS AVE HANGAR 6         ,WASHINGTON        ,DC,20001     ,1,001,US,20160614,19900214,1T        ,5,5 ,V ,50000001, ,19880909,                                                  ,                                                  ,                                                  ,                                                  ,                                                  ,20191130,00524101,                              ,                    ,A00001    ,""")

mfr = StringIO("""CODE,MFR,MODEL,TYPE-ACFT,TYPE-ENG,AC-CAT,BUILD-CERT-IND,NO-ENG,NO-SEATS,AC-WEIGHT,SPEED,
3980115,EXLINE ACE-C                  ,ACE-C               ,4,1 ,1,1,01,001,CLASS 1,0082,""")

masterdf = pd.read_csv(master,sep=",",index_col=False)
mfrdf = pd.read_csv(mfr,sep=",",index_col=False)

masterdf.merge(mfrdataframe,left_on='MFR MDL CODE',right_on='CODE', how='inner')

1 个答案:

答案 0 :(得分:2)

我认为问题是您传递给merge的数据框的名称:mfrdataframe应该是mfrdf