У меня есть DataFrame df
:
**Count**
**Environment** **Type**
**A** a 100
b 200
c 300
d 400
e 500
f 600
**B** a 1000
b 2000
c 3000
d 4000
e 5000
f 6000
. df.index
выплевывает следующий индекс:
MultiIndex(levels=[['A', 'B'], ['a', 'b', 'c', 'd', 'e', 'f']],
labels=[[0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1],
[0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5]],
names=['A', 'B'])
Мне нужно рассчитать процент отсчетов на A иБ. Итак, я делаю:
sums = df.groupby(level = 0).sum()
df.loc['A'] = df.loc['A'].apply(lambda x: x/sums.loc['A','Count'])
df.loc['B'] = df.loc['B'].apply(lambda x: x/sums.loc['B','Count'])
Однако это приводит к тому, что все значения равны NaN
.
Я подозреваю, что индекс df.loc['B'].apply(lambda x: x/sums.loc['B','Count'])
не совпадает с индексомdf
, но она должна совпадать с частью df
, которую я выбираю.
Они сами по себе
df.loc['A'].apply(lambda x: x/sums.loc['A','Count'])
df.loc['B'].apply(lambda x: x/sums.loc['B','Count'])
имеют нужные мне значения, поэтому деление работает.Но присвоение не дает.
Как назначить результат вышеупомянутого выражения для части кадра данных df
?