在脚本上出错以关联CSV文件中的数据

时间:2019-02-22 20:37:14

标签: python postgresql csv

我正在尝试一个脚本,该脚本查看csv密钥文件中的数据,然后将其与第二个CSV文件中的关联数据进行比较,并使用相关数据更新第二个CSV文件。

这是代码

predictions.iloc[i].equals(targets.iloc[i])

基本上,我要在这里执行的操作是查看此CSV文件(mealsToTreatsKey.csv),该文件列出了与用餐相关的每种食物:

import csv
import collections

treats = {}
with open('mealsToTreatsKey.csv', 'r') as f2:
    for line in f2:
        meal,treat = line.strip().split(',')
        treats[meal] = treat


new_items = set()
Treat = collections.namedtuple('Treat', 
['blank_column','Kennel_Number','Species','Food','Meal_ID'])


with open('foodandtreats.csv') as f1:
    reader = csv.DictReader(f1)
    for row in reader:
        row['Food'] = 'Treat'
        row['Meal_ID'] = treats[row['Meal_ID']]
        new_items.add(Treat(**row))
    fieldnames = reader.fieldnames


with open('foodandtreats.csv', 'a') as f1:
    writer = csv.DictWriter(f1, fieldnames)
    for row in new_items:
        writer.writerow(row._asdict())

然后,我需要查看第二个CSV文件(foodsandtreats.csv),并查看每次与特定零食相关的餐食与狗窝相关...

Meals_fed,Treats_fed
10.1,2.4
11.2,2.4
13.5,3
15.6,3.2
17,3.2
20.1,5.1
21.4,5.2
35.7,7.7
45.2,7.9

然后将第二个CSV附加到每个狗窝的所有零食中,这样就得出了这样的内容:

blank_column,Kennel_Number,Species,Food,Meal_ID
,1,Dog,Meal,11.2
,5,Dog,Meal,45.2
,3,Dog,Meal,21.4
,4,Dog,Meal,17
,2,Dog,Meal,11.2
,4,Dog,Meal,21.4
,6,Dog,Meal,17
,2,Dog,Meal,45.2

当前,使用上面列出的代码,我得到一个错误:

blank_column,Kennel_Number,Species,Food,Meal_ID
,1,Dog,Meal,11.2
,5,Dog,Meal,45.2
,3,Dog,Meal,21.4
,4,Dog,Meal,17
,2,Dog,Meal,11.2
,4,Dog,Meal,21.4
,6,Dog,Meal,17
,2,Dog,Meal,45.2
,1,Dog,Treat,2.4
,5,Dog,Treat,7.9
,3,Dog,Treat,5.2
,4,Dog,Treat,3.2
,1,Dog,Treat,2.4
,4,Dog,Treat,5.2

怎么了?

0 个答案:

没有答案