我有一个如下所示的数据框:
p4
我希望,对于每个独特的产品,使用A和B列执行模型预测,并存储相应的精度。
A B C
0 1 2 PRODUCT_1
1 3 2 PRODUCT_2
2 3 2 PRODUCT_4
3 3 2 PRODUCT_5
4 5 2 PRODUCT_1
5 3 2 PRODUCT_3
我怎样才能在Python中实现第二点?
答案 0 :(得分:0)
从 -
开始df = pd.DataFrame(...) # your data
df
A B C
0 1 2 PRODUCT_1
1 3 2 PRODUCT_2
2 3 2 PRODUCT_4
3 3 2 PRODUCT_5
4 5 2 PRODUCT_1
5 3 2 PRODUCT_3
首先使用
查找唯一身份证uniques = df.C.unique()
uniques
array(['PRODUCT_1', 'PRODUCT_2', 'PRODUCT_4', 'PRODUCT_5', 'PRODUCT_3'], dtype=object)
要获取特定产品的所有行,请使用groupby
执行此操作(因此,您实际上并不需要uniques
) -
acc = {}
for i, g in df.groupby('C'):
X, y = g['A'], g['B']
p = model.predict(X, y)
acc[i] = (p == y).sum() / len(y)
基本上,对于每个群组,请致电model.predict
并在acc
词典附加一个键值对。