I've csv file with column name "image file location" and "label name". I'm trying to extract certain number of label name such that all label name count must be same.
suppose if label_name = ['car','dog','flight','god','car']
I should choose label_name with count 2 which is car in this example.
I tried below code to achieve above requriement
read_file = open('read.csv','r')
write_file = open('write.csv','w')
csv_read = csv.reader(read_file)
csv_write = csv.writer(write_file)
counter = 0
class_list=[]
class_dic = {}
no_of_samples_count = 100
for cnt, read in enumerate(csv_read):
if len(class_list) == 100:
if read[1] in class_dic:
if class_dic[read[1]]== 101:
continue
file=read[0]
class_name=read[1]
xmin=read[2]
xmax=read[3]
ymin=read[4]
ymax=read[5]
shutil.copy(file,'images')
csv_write.writerow([file,class_name,xmin,xmax,ymin,ymax])
if class_name in class_list:
class_dic[class_name]+=1
continue
else:
class_dic[class_name]=1
class_list.append(class_name)
sum = 0
for x in class_dic.values():
sum+=x
if sum == no_of_samples_count*no_of_samples_count:
break
else:
print('sum:%d'%sum)
continue
print(class_dic)
this logic creates uneven count of samples. Any suggestions to achieve my requirements will be very helpful