我有一个导入的 csv 文件,其中包含 59 列。我想计算每列中的中位数。
每一列都混合了 NaN 值和实整数值,行也是如此。
我必须保留所有记录,因为每一行中都有一个有效的测量值,如果我按列或行删除 NaN 值,我的数据集就是空的。
我已将 NaN 设置为零,但无法让它忽略 0 值。
目前我有站点编号和一个其他相应的度量,并删除了作为独立单元的每一列的 NaN 值,但这非常耗时。
是否有更好的方法来计算给定数据情况下的中位数?
最佳答案
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
https://stackoverflow.com/questions/50711535/