Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从特定指数中选择较大的概率_Python_Database_Python 2.7 - Fatal编程技术网

Python 从特定指数中选择较大的概率

Python 从特定指数中选择较大的概率,python,database,python-2.7,Python,Database,Python 2.7,我的数据库如下: indexID matchID order userClean Probability 0 0 1 0 clean 35 1 0 2 1 clean 75 2 0 2 2 clean 25 5 3 4 5 cle

我的数据库如下:

     indexID  matchID  order userClean  Probability
0          0        1      0     clean          35
1          0        2      1     clean          75
2          0        2      2     clean          25
5          3        4      5     clean          40
6          3        5      6     clean          85
9          4        5      9     clean          74
12         6        7     12     clean          23
13         6        8     13     clean          72
14         7        8     14     clean          85
15         9       10     15     clean          76
16        10       11     16     clean          91
19        13       14     19     clean          27
23        13       17     23     clean          10
28        13       18     28     clean          71
32        20       21     32     clean          97
33        20       22     33     clean          30
我想做的是,对于每个重复的indexID,我想选择概率较高的条目,并将其标记为干净,另一个标记为脏

输出应如下所示:

     indexID  matchID  order userClean  Probability
0          0        1      0     dirty          35
1          0        2      1     clean          75
2          0        2      2     dirty          25
5          3        4      5     dirty          40
6          3        5      6     clean          85
9          4        5      9     clean          74
12         6        7     12     dirty          23
13         6        8     13     clean          72
14         7        8     14     clean          85
15         9       10     15     clean          76
16        10       11     16     clean          91
19        13       14     19     dirty          27
23        13       17     23     dirty          10
28        13       18     28     clean          71
32        20       21     32     clean          97
33        20       22     33     dirty          30

如果需要
pandas
解决方案,请通过将
概率
列by(
!=
)与创建的每个组的
最大值
进行比较,创建布尔掩码,因为需要
系列
的大小与
df
相同:

mask = df['Probability'].ne(df.groupby('indexID')['Probability'].transform('max'))
df.loc[mask, 'userClean'] = 'dirty'
print (df)
    indexID  matchID  order userClean  Probability
0         0        1      0     dirty           35
1         0        2      1     clean           75
2         0        2      2     dirty           25
5         3        4      5     dirty           40
6         3        5      6     clean           85
9         4        5      9     clean           74
12        6        7     12     dirty           23
13        6        8     13     clean           72
14        7        8     14     clean           85
15        9       10     15     clean           76
16       10       11     16     clean           91
19       13       14     19     dirty           27
23       13       17     23     dirty           10
28       13       18     28     clean           71
32       20       21     32     clean           97
33       20       22     33     dirty           30
详细信息

print (df.groupby('indexID')['Probability'].transform('max'))
0     75
1     75
2     75
5     85
6     85
9     74
12    72
13    72
14    85
15    76
16    91
19    71
23    71
28    71
32    97
33    97
Name: Probability, dtype: int64
如果要比较
平均值
(>)


您可以指定数据库吗?或者认为熊猫数据帧?比什么高?有什么阈值吗?@JackDaniels比AverageOK高。谢谢你的更新。
mask = df['Probability'].gt(df['Probability'].mean())
df.loc[mask, 'userClean'] = 'dirty'
print (df)
    indexID  matchID  order userClean  Probability
0         0        1      0     clean           35
1         0        2      1     dirty           75
2         0        2      2     clean           25
5         3        4      5     clean           40
6         3        5      6     dirty           85
9         4        5      9     dirty           74
12        6        7     12     clean           23
13        6        8     13     dirty           72
14        7        8     14     dirty           85
15        9       10     15     dirty           76
16       10       11     16     dirty           91
19       13       14     19     clean           27
23       13       17     23     clean           10
28       13       18     28     dirty           71
32       20       21     32     dirty           97
33       20       22     33     clean           30