У меня есть Dataframe, в котором столбец имеет несколько уникальных значений. Мне нужно найти значение для каждого уникального значения и создать новый процент имен столбцов, чтобы заполненное значение было основано на целевой переменной. Цель (класс) принимает значение от 0 до 9
для примера:
[![Gene
Class
0
FAM58A
1
1
CBL
2
2
CBL
2
3
CBL
3
4
CBL
4][1]][1]
, чтобы заполнить значение для вышеприведенного примера
for ['FAM58A'] --> Target variable is 1 and it has only one value, so its value will be 1
for ['CBL'] --> we have 3 classes, namely two 2's, one 3, and one 4
so, value for 2 will be 2/4 = 0.5
value for 3 will be 1/4 = 0.25
value for 4 will be 1/4 = 0.25
У меня есть следующий код, но я не могу добавить все значения. он просто добавляет окончательное значение в список
genes = ['SHOC2', 'TERT','CBL']
t4 = np.zeros([262,3])
for gene in genes:
t1 = gene
t2 = df[df['Gene'] == gene].groupby(['Class'])['Class'].count() / len(df[df['Gene'] == gene])
t3 = pd.DataFrame({'Gene':t1,'Class':t2.index,'Percentage':t2.values})
, что мне нужно изменить здесь, чтобы получить значение для каждого гена, а не только для 'CBL'