我得到了一个如下表所示的csv文件。对于每个文件夹,我希望以“狗”的最大概率返回图像。每个文件夹只能返回一个图像。如果不存在Dog,则以最高的概率将“ Cat”作为主图像。如果没有猫,则将具有最高概率的“鸟”作为主要图像,依此类推。
CSV:
FolderName ImageName Predictions Probabilities
ABC MyPet Dog 0.98
ABC HisPet Cat 0.90
DEF HerPet Bird 0.83
ABC NotPet Dog 0.23
DEF asdf Dog 0.78
DEF M123 Cat 0.19
GHI M123s Cat 0.89
GHI M13 Cat 0.19
我只能以最高的概率返回img,如何先对“预测”列和“概率”列进行优先级设置?
df.loc[df.groupby('FolderName')['Probabilities'].idxmax()]
代码返回
FolderName ImageName Predictions Probabilities
ABC MyPet Dog 0.98
DEF asdf Bird 0.83
GHI M123s Cat 0.89
所需结果:
FolderName ImageName Predictions Probabilities
ABC MyPet Dog 0.98
DEF asdf Dog 0.78
GHI M123s Cat 0.89
答案 0 :(得分:1)
这可以通过将“预测”转换为有序的“分类”列,然后调用import csv
with open ('abc.csv','r') as csv_file:
csv_reader = csv.reader(csv_file)
for line in csv_reader:
if line[0].startswith('http'):
print(line)
和sort_values
来完成。
drop_duplicates