我有一个’DataFrame’,它偶尔会缺少值,看起来像这样:
Monday Tuesday Wednesday ================================================ Mike 42 NaN 12 Jenna NaN NaN 15 Jon 21 4 1
我想在column数据框中添加一个新的数据,以计算columns每个数据的平均值row。
column
columns
row
意思是,对于Mike,我需要 (df['Monday'] + df['Wednesday'])/2,但是对于Jenna,我只需要使用df['Wednesday amt.']/1
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()默认情况下会忽略缺失值:请参阅docs。
.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