【发布时间】:2016-03-22 01:45:26
【问题描述】:
我想编写一个 python 脚本,它根据特定键合并两个 csv 文件的分数。
file1.csv
id, uid, score1, score2
1,abc,3,5
2,def,2,4
file2.csv
id, uid, score3
1,def,5
2,abc,4
给定键“uid”的所需连接文件示例:
uid, score1, score2, score3
abc, 3, 5, 4
def, 2, 4, 5
我的代码看起来应该可以工作,但由于某种原因我不断收到
KeyError: 'uid'
当我尝试运行它时:
import pandas as pd
csv1 = pd.read_csv('file1.csv')
csv2 = pd.read_csv('file2.csv')
csv1.drop(csv1.columns[[0]], axis=1, inplace=True)
csv2.drop(csv2.columns[[0]], axis=1, inplace=True)
merged = pd.merge(csv1, csv2, on='uid')
print merged
我什至尝试替换
merged = pd.merge(csv1, csv2, on='uid')
与
merged = csv1.merge(csv2, on='uid')
我也遇到了同样的错误。
我认为 drop 可能会以某种方式修改索引,因此合并无法读取“uid”,但我不知道如何修复它。
【问题讨论】:
-
.drop 后 csv1 和 csv2 是什么样子的?
标签: python csv pandas merge keyerror