Я пытаюсь рассчитать средневзвешенное использование GroupBy. Тем не менее, я имею дело с пустым значением в своем DataFrame. < /P> [code]df = pd.DataFrame({ 'group': ['a', 'a', 'a', 'a'], 'x': [10, 20, np.nan, 20], 'weight_x': [10, 15, np.nan, 25], 'y': [25, 35, 45, np.nan], 'weight_y': [10, 20, 10, np.nan] }) < /code> Это моя функция группы: < /p> summary = ( df .groupby(['group']) .apply( lambda x: pd.Series([ np.average(x['x'], weights=x['weight_x']), np.average(x['y'], weights=x['weight_y']) ], index=['wt_avg_x', 'wt_avg_y']) ) .reset_index() ) < /code> Этот дает следующий вывод: < /p> group wt_avg_x wt_avg_y 0 a NaN NaN < /code> Однако ожидаемый выход должен быть следующим: < /p> group wt_avg_x wt_avg_y 0 a 20.5 35 < /code> Я попробовал это решение: < /p> summary = ( df.dropna(subset=['x', 'y', 'weight_x', 'weight_y']) .groupby(['group']) .apply( lambda x: pd.Series([ np.average(x['x'], weights=x['weight_x']), np.average(x['y'], weights=x['weight_y']) ], index=['wt_avg_x', 'wt_avg_y']) ) .reset_index() ) [/code] Но Dropna выпускает всю строку. Как я мог игнорировать значения NAN только в функции np.average ?
Я пытаюсь вычислить средневзвешенное значение с помощью функции groupby. Однако я имею дело с пустым значением в моем фрейме данных.
df = pd.DataFrame({
'group': ,
'x': ,
'weight_x': ,
'y': ,
'weight_y':
})
Я пытаюсь вычислить средневзвешенное значение с помощью функции groupby. Однако я имею дело с пустым значением в моем фрейме данных.
df = pd.DataFrame({
'group': ,
'x': ,
'weight_x': ,
'y': ,
'weight_y':
})
Я пытаюсь вычислить средневзвешенное значение с помощью функции groupby. Однако я имею дело с пустым значением в моем фрейме данных.
df = pd.DataFrame({
'group': ,
'x': ,
'weight_x': ,
'y': ,
'weight_y':
})
Я пытаюсь вычислить средневзвешенное значение с помощью функции groupby. Однако я имею дело с пустым значением в моем фрейме данных.
df = pd.DataFrame({
'group': ,
'x': ,
'weight_x': ,
'y': ,
'weight_y':
})
Я пытаюсь вычислить средневзвешенное значение с помощью функции groupby. Однако я имею дело с пустым значением в моем фрейме данных.
df = pd.DataFrame({
'group': ,
'x': ,
'weight_x': ,
'y': ,
'weight_y':
})