У меня есть следующий фрейм данных:
df= pd.DataFrame({'A': np.random.randn(10),
'B': np.concatenate((np.repeat(np.nan, 4), np.array([0.7]), np.repeat(np.nan, 4), np.array([0.5]))),
'C': np.random.randn(10),
'D': np.concatenate((np.repeat(np.nan, 4), np.array([0.2]), np.repeat(np.nan, 4), np.array([0.15])))})
это выглядит примерно так:
A B C D
0 0.537109 NaN -0.204046 NaN
1 0.744488 NaN 0.903607 NaN
2 0.640995 NaN 0.712210 NaN
3 0.212758 NaN 0.293984 NaN
4 -1.786725 0.7 0.282747 0.20
5 1.486037 NaN -0.199659 NaN
6 0.267356 NaN 0.890397 NaN
7 0.697408 NaN -0.771626 NaN
8 0.044247 NaN -1.157836 NaN
9 0.345658 0.5 1.556390 0.15
Я хотел бы рассчитать некоторую статистику, например среднее значение для срезов этого кадра данных, например, я хотел бы, чтобы результат выглядел примерно так:
MeanA B MeanC D
0 2.1 0.7 1.3 0.20
1 1.4 0.5 5.6 0.15
Другими словами, я хочу сохранить значения не-NA из столбцов B и D и вычислить среднее и другие значения A и C из значений выше / ниже значений не-NA из B и D (в данном случае , давайте включим -1,786725 в обоих случаях, аналогично для 0,282747).
ПРИМЕЧАНИЕ: значения из MeanA и MeanC составлены из-за использования np.random.randn ().
Теперь, конечно, мой настоящий фрейм данных содержит больше столбцов и больше строк, поэтому было бы неплохо обобщить это.