Среднеквадратичное значение для подмножества столбцов при учете недостающих значений

У меня есть "DataFrame", который имеет случайные отсутствующие значения и выглядит примерно так:

          Monday         Tuesday         Wednesday 
      ================================================
Mike        42             NaN               12
Jenna       NaN            NaN               15
Jon         21              4                 1

Я хотел бы добавить новый column в мой фрейм данных, где я бы вычислил среднее значение для всех columns для каждого row.

Значение, для Mike, мне понадобится (df['Monday'] + df['Wednesday'])/2, но для Jenna я просто использовал df['Wednesday amt.']/1

Кто-нибудь знает лучший способ учесть эту вариацию, которая возникает из-за отсутствия значений и вычисления среднего?

Ответы

Ответ 1

Вы можете просто:

df['avg'] = df.mean(axis=1)

       Monday  Tuesday  Wednesday        avg
Mike       42      NaN         12  27.000000
Jenna     NaN      NaN         15  15.000000
Jon        21        4          1   8.666667

поскольку .mean() по умолчанию игнорирует отсутствующие значения: см. документы.

Чтобы выбрать подмножество, вы можете:

df['avg'] = df[['Monday', 'Tuesday']].mean(axis=1)

       Monday  Tuesday  Wednesday   avg
Mike       42      NaN         12  42.0
Jenna     NaN      NaN         15   NaN
Jon        21        4          1  12.5