我有一个我导入的csv文件,我有59列。我想计算每列中的中位数。
每列都有NaN值和实数整数值的混合,行也是如此。
我必须保留所有记录,因为每行中都有一个有效的测量值,如果我按列或行删除NaN值,我的数据集就是空的。
我已将NaN设置为零,但我无法忽略0值。
目前我有站点编号和另外一个相应的度量,并将每列的NaN值作为一个独立单元删除,但这非常耗时。
有没有更好的方法来计算中位数给定的数据情况?
答案 0 :(得分:4)
pandas.DataFrame.median
默认忽略NaN
,您必须明确将 skipna
标记更改为False
才能包含NaN/null
}值。
df = pd.DataFrame({'col1': [1,2,3,np.nan, 4,5], 'col2': [4,5,6,np.nan, np.nan,7]})
df.median()
col1 3.0
col2 5.5
dtype: float64
df.median(skipna=False)
col1 NaN
col2 NaN
dtype: float64