python - 无法使用 pandas 合并两个数据框

标签 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')

最佳答案

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

关于python - 无法使用 pandas 合并两个数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44445216/

相关文章:

dataframe - 如何在 Julia 中嵌套/取消嵌套数据框?

python - pandas时间序列数据预处理

python - 连接存储在 numpy 数组中的两个数据表的有效方法是什么?

python - Contourf 和 quiver Animation with Basemap Python

python - Pandas:过滤后的数据帧不返回任何行,但未过滤的数据框会返回任何行

pandas - 根据每行的列表值对 Pandas 数据帧进行排序

r - 根据索引列创建新列

python - 使用 python 读写 postgres 脚本

python - 如何阻止 VS Code 自动终止 Python 中的 selenium 浏览器实例?

python - 如何在pandas中找到相同数字和名称的增量?