You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于中位数对数据集非零数据分类(NA视为0)

解决方法:用Pandas处理数据分类需求

没问题,我来帮你搞定这个数据分类的需求!咱们用Python的pandas库就能快速实现,步骤清晰易懂:

1. 准备原始数据并导入依赖库

首先导入pandas和numpy,然后把你的原始数据集转换成DataFrame格式:

import pandas as pd
import numpy as np

# 构建原始数据集
raw_data = {
    'ID': [1, 2, 3, 4, 5, 6, 7, 8, 9],
    'Quantity': [0.93, 0.17, np.nan, 0.44, np.nan, 0.86, 0.07, 0.23, 1.00]
}
df = pd.DataFrame(raw_data)

2. 生成Quantity_median分类列

按照你的要求:

  • NA值直接视为0,对应Quantity_median列显示0
  • 非NA的数值和给定中位数0.44比较,分为<=0.44和>0.44两类

咱们用numpy.where嵌套条件判断来实现:

# 定义给定的中位数
median_value = 0.44

# 生成分类列
df['Quantity_median'] = np.where(
    df['Quantity'].isna(),
    0,
    np.where(df['Quantity'] > median_value, f'>{median_value}', f'<={median_value}')
)

3. 查看最终结果

运行代码后,打印DataFrame就能得到你想要的结果:

print(df.to_string(index=False))

输出结果如下:

ID Quantity Quantity_median
 1     0.93          >0.44
 2     0.17         <=0.44
 3      NaN               0
 4     0.44         <=0.44
 5      NaN               0
 6     0.86          >0.44
 7     0.07         <=0.44
 8     0.23         <=0.44
 9     1.00          >0.44

也可以用Markdown表格直观展示:

IDQuantityQuantity_median
10.93>0.44
20.17<=0.44
3NA0
40.44<=0.44
5NA0
60.86>0.44
70.07<=0.44
80.23<=0.44
91.00>0.44

内容的提问来源于stack exchange,提问作者amty

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 06:21:21