python - 如何使用具有 NaN 值的 Pandas 计算中位数?

我有一个导入的 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/

相关文章:

reactjs - 我如何模拟 reactjs 中的 promise ?

qt - 没有安装 qmlscene : why is a warning sign next to

python - 当我使用 toastnotification 执行 python exe 时,显示

c# - 从 JSON 中提取第一个元素

java - 如何为不同类型的异常设置不同的状态码

python - importlib.reload() 没有将文件重新加载到 ipython 笔记本

python - 属性错误 : 'str' object has no attribute 'Sub

apache-kafka - Kafka 中的性能测试

angular - 如何指定从根目录到 Assets Angular 的路径?

php - 如何显示在 php 中使用 file_get_contents 检索到的 pdf?