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

集中趋势测度:均值与中位数孰优?及行级数据替换逻辑问询

嘿,我来帮你搞定这两个问题!

问题1:均值 vs 中位数,哪种集中趋势测度更优?

其实没有绝对的「谁更优」,完全得看你的数据情况:

  • 如果你的数据是对称分布(比如经典的正态分布),而且没有极端值捣乱,均值是更好的选择——它用到了所有数据点的信息,能精准反映整体的平均水平。
  • 但如果数据里有极端值(比如某城市某天温度突然飙到100℃,或者低到-20℃),或者是偏态分布(比如收入数据,少数人赚得特别多),那中位数就靠谱多了——它只看中间位置的数值,完全不受极端值的影响,能代表最「典型」的那个值。

简单总结:对称无极端选均值,偏态有极端选中位数!

问题2:温度数据集的后续逻辑实现(以Python pandas为例)

假设你已经用pandas算出了每行的均值,接下来咱们一步步完成剩下的逻辑:

第一步:明确需求细节

我们要对每行做这几件事:

  1. 统计该行中小于均值的数据点占比是否≥50%
  2. 如果满足条件,就把整行的城市温度值替换为该行的均值;不满足的话,就替换为该行的中位数

第二步:代码实现

先按你提供的温度数据构造示例数据集:

import pandas as pd

# 按你给出的温度值创建DataFrame(你提到20个城市但只提供了16个值,这里先按实际数据处理)
temp_data = {
    'city1': [23],
    'city2': [34],
    'city3': [45],
    'city4': [56],
    'city5': [34],
    'city6': [56],
    'city7': [26],
    'city8': [54],
    'city9': [12],
    'city10': [23],
    'city11': [33],
    'city12': [64],
    'city13': [34],
    'city14': [67],
    'city15': [31],
    'city16': [42]
}
df = pd.DataFrame(temp_data)

# 你已经完成的均值计算
df['row_mean'] = df.mean(axis=1)

接下来完成剩余逻辑:

# 1. 计算每行的中位数
df['row_median'] = df.median(axis=1)

# 2. 筛选出所有城市温度的列(避免误操作后面生成的辅助列)
city_columns = [col for col in df.columns if col.startswith('city')]

# 3. 统计每行中小于均值的数据点占比
df['pct_less_than_mean'] = df[city_columns].apply(lambda row: (row < row.mean()).mean(), axis=1)

# 4. 判断是否满足「50%数据点小于均值」的条件
df['condition_met'] = df['pct_less_than_mean'] >= 0.5

# 5. 根据条件替换整行数据
for index, row in df.iterrows():
    if row['condition_met']:
        # 满足条件,用均值替换整行城市列
        df.loc[index, city_columns] = row['row_mean']
    else:
        # 不满足,用中位数替换
        df.loc[index, city_columns] = row['row_median']

# 若不需要中间辅助列,可以删除它们
df = df.drop(['row_mean', 'row_median', 'pct_less_than_mean', 'condition_met'], axis=1)

代码小解释

  • 用df.median(axis=1)计算每行中位数,为后续替换做准备;
  • 用列表推导式筛选城市列,避免误操作辅助列;
  • apply结合lambda函数,快速统计每行小于均值的数据占比;
  • 最后遍历每行,根据条件完成整行替换。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:33:07