1. ホーム
  2. python

欠損値を持つ列の部分集合に対する行単位の平均値

2023-10-14 10:54:09

質問

時々欠損値がある'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

欠損値によるばらつきを考慮し、平均値を算出する最適な方法をご存知の方はいらっしゃいますか?

どのように解決するのですか?

簡単にできます。

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