Мне нужно сравнить два Excel и сложить все фактические значения, которые имеют одинаковое значение ключа.
example sheet.
sheet 1 | sheet 2
index id count | index id name
1 a 12 | 1 a qg1
2 b 15 | 2 c ff2
3 c 21 | 3 f dv1
4 b 5 | 4 b bm5
. .
. .
В приведенном выше случае я ссылаюсь на sheet2 и суммирую фактическое значение (количество) значенийс тем же идентификатором в sheet1. (id a | 100, id b | 20 ...)
Приведенный ниже код занимает слишком много времени, поскольку каждый идентификатор индексируется.
import pandas as pd
import csv
pcode_quantity = pd.read_csv('/1.csv',delimiter=',')
product_info = pd.read_csv('/2.csv' , delimiter=',')
product_list = product_info.id.tolist()
purchase_id = pcode_quantity.id.tolist()
purchase_count = pcode_quantity['count'].tolist()
product_sum = 0
i =0
i2 = 0
product_lenth =len(product_list)
purchase_lenth = len(purchase_id)
dict_pcode = {}
while product_lenth > i:
while purchase_lenth > i2:
if product_list[i] == purchase_id[i2]:
product_sum = product_sum + purchase_count[i2]
i2=i2+1
dict_pcode[product_list[i]]=product_sum
product_sum = 0
i2= 0
i= i+1
sum_pcode = pd.DataFrame(list(dict_pcode.items()))
sum_pcode.to_csv('/output.csv')
Есть лилюбой код, который может ускорить вышеуказанные операции?