Мне трудно понять, как работает функция:
""" the apply() method lets you apply an arbitrary function to the group
result. The function take a DataFrame and returns a Pandas object (a df or
series) or a scalar.
For example: normalize the first column by the sum of the second"""
def norm_by_data2(x):
# x is a DataFrame of group values
x['data1'] /= x['data2'].sum()
return x
print (df); print (df.groupby('key').apply(norm_by_data2))
(Выдержка из: "Python Data Science Handbook", Джейк ВандерПлас, стр. 167)
Возвращает это:
key data1 data2
0 A 0 5
1 B 1 0
2 C 2 3
3 A 3 3
4 B 4 7
5 C 5 9
key data1 data2
0 A 0.000000 5
1 B 0.142857 0
2 C 0.166667 3
3 A 0.375000 3
4 B 0.571429 7
5 C 0.416667 9
Для меня лучший способ понять, как это работает, - вручную вычислить значения.
Может кто-нибудь объяснить, как вручную добраться до второго значения столбца 'data1': 0.142857
Это 1/7? но откуда эти значения?
Спасибо!