提取唯一身份并循环播放

时间:2017-12-12 08:45:53

标签: python pandas group-by unique

我有一个如下所示的数据框:

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中实现第二点?

1 个答案:

答案 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词典附加一个键值对。