我有两个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)