import pandas as pd
import numpy as np
df = pd.DataFrame(np.arange(10).reshape(-1, 2), columns=['A', 'B'])
df['C']=[5,2,np.nan,4,np.nan]
df['index']=df.index
數據框:而方含np.nan使用np.average如何caculate平均(當使用GROUPBY)
A B C index
0 0 1 5 0
1 2 3 2 1
2 4 5 NaN 2
3 6 7 4 3
4 8 9 NaN 4
我想用GROUPBY功能可按計算「A」的平均「B」「C」表示每個索引。
df1 = df.groupby('index')
average = df1.apply(lambda df,x,y :np.average(df.iloc[:,x:y]),0,3)
平均:
index
0 2.00
1 2.33
2 NaN
3 5.67
4 NaN
dtype:float64
什麼我想要做的是:
當ABC是數字,平均=(A + B + C)/ 3
當ABC之一是np.nan,平均值= sum/2
我不知道熊貓,但不能使用'np.nanmean'? –
@Paul Panzer OMG.np.nanmean解決了這個問題。 –
@jezrael你是什麼意思的唯一索引?我在這裏使用的'索引'僅適用於groupby函數 –