我正在使用“销售序号”(列名)作为键,使用两列数据框(命名为sales_product)创建一个字典(命名数据),然后插入匹配的“产品ID”(列名) 匹配字典中的键列表。 但是该程序需要近6个小时才能执行,因此任何人都可以提出任何建议以加快此过程的速度。
ID = [] #ID list
items = []
data = {}
for i in range(len(sales_product)):
curr_id = sales_product['Sales Ord Id'][i]
if curr_id not in ID:
ID.append(curr_id)
data[curr_id]=[]
data[curr_id].append(sales_product['Prod ID'][i])
else:
if sales_product['Prod ID'][i] not in data[curr_id]:
data[curr_id].append(sales_product['Prod ID'][i])
答案 0 :(得分:0)
您应该尝试使用熊猫groupby。它通过列值将数据框的数据分组,并允许您使用这些组。它应该工作更快。
import pandas as pd
sales_product = pd.DataFrame({'Sales Ord Id': [1, 2, 1, 2, 1, 2, 1, 2, 1, 2],
'Prod ID': [11, 12, 13, 14, 15, 16, 17, 18, 19, 10]})
groupby = sales_product.groupby('Sales Ord Id')
data = dict([(x, list(d['Prod ID'])) for x, d in groupby])
print(data)
# prints {1: [11, 13, 15, 17, 19], 2: [12, 14, 16, 18, 10]}