如果我有一个DataFrame要在其中将具有相同索引名称的行分组,请说:
a b c
c 2 1 -
c nan 2 -
d 4 3 -
e 5 4 -
d 6 5 -
我想合并具有相同列名的行,同时取它们在a列和b列中的平均值。这样df就会变成:
a b
c 2 1.5
d 5 4
e 5 4
如果我这样做:
averaging = df.groupby(["Index"])[['a', 'b']].mean()
(“索引”是为行设置的名称)
那行得通,只是它不会忽略nan。因此,我得到的不是我想要的数据框:
a b
c nan 1.5
d 5 4
e 5 4
答案 0 :(得分:0)
您可以将mean
与level=0
一起使用
pd.to_numeric(df.a,errors='coerce').mean(level=0)
Out[438]:
c 2.0
d 5.0
e 5.0
Name: a, dtype: float64
使用replace
df=df.replace('nan',np.nan)