如何使用具有NaN值的pandas计算中位数?

时间:2018-06-06 02:40:17

标签: python pandas

我有一个我导入的csv文件,我有59列。我想计算每列中的中位数。

每列都有NaN值和实数整数值的混合,行也是如此。

enter image description here

我必须保留所有记录,因为每行中都有一个有效的测量值,如果我按列或行删除NaN值,我的数据集就是空的。

我已将NaN设置为零,但我无法忽略0值。

目前我有站点编号和另外一个相应的度量,并将每列的NaN值作为一个独立单元删除,但这非常耗时。

有没有更好的方法来计算中位数给定的数据情况?

1 个答案:

答案 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