使用reduce合并列,得到键错误

时间:2018-06-14 03:29:32

标签: python pandas merge reduce

我有两个csv文件。我试图合并它们。 第一个csv文件'Test_base1'看起来像:

OBJECTID,STATEFP,COUNTYFP,TRACTCE,GEOID 

1,12,105,10300,15000US121050103002 

2,12,103,24804,15000US121030248041

3,12,105,10800,15000US121050108001 

第二个csv文件'Test_file23_1'如下所示:

GEOID,B23003e1,B23003m1,B23003e2,B23003m2,B23003e3

15000US121050103002,69,81,13,21,13

15000US121030248041,657,248,62,79,0

15000US120010004001,410,143,261,126,47  

当我通过引用字段'GEOID'将它们合并时,我收到一个错误:KeyError:'GEOID'。 但是'GEOID'出现在列名中。什么是解决方案?我的代码有什么问题?

更新:这不是编码错误。和@Zev聊天。我们认为,这不是编码问题。如果我将文件数据复制到一个新的黑色文件,然后创建它,它就可以了。但我不知道背后的原因。 Zev尝试使用相同的文件。他身边没有错误。但同样的错误在我身边。 文件: 1. https://www.dropbox.com/s/rg706ck6bdda4sa/Test_Base1.csv?dl=0 2. https://www.dropbox.com/s/yf49f2p7btkc56r/Test_File23_1.csv?dl=0

    import pandas as pd, numpy as np
    from functools import reduce

    df1=pd.read_csv("Test_Base1.csv")
    df2=pd.read_csv("Test_File23_1.csv")
    dfs = [ df1, df2]
    df_merged = reduce(lambda  left,right: pd.merge(left,right,on=['GEOID'],how='outer'), dfs)
    df_merged.to_csv('test1.csv', index=False)

确切的错误: enter image description here

0 个答案:

没有答案