衡量集中趋势的指标是什么?平均值还是中位数?

时间:2018-03-31 16:41:25

标签: python pandas numpy

我有一个不同城市的温度数据集(总城市数= 20)。

数据集:

  Columns->  city1 city2 city3 .... city20
             23    34     45         56
             34    56     26         54
             12    23     33         64
             34    67     31         42

现在,对于每一行,我想找到平均值,并想检查特定行中50%的数据点是否小于均值。如果有小于平均值的数据点,那么我创建一个单独的列,我用中位替换整行。

在下面的代码中,我正在计算均值,然后我只是使用for循环检查50%数据点是否小于均值。有没有其他聪明的方法来做到这一点?我的最终目标是创建一个列,如果50%数据点小于平均值,则该列中的每个单元格将具有该特定行的所有温度的平均值。否则在列单元格中使用中位数。

代码:

mean1 = data.mean(axis=1)

2 个答案:

答案 0 :(得分:1)

对于每一行,我们比较不同于平均值和中位数的总和,选择较少的一个,在你的情况下,第1行到第3行我们选择中位数,第4行我们选择平均值

class TodoForm extends React.Component {
    ...

    handleSubmit(e) {
        const { dispatch } = this.props;
        e.preventDefault();

        document.querySelector('input').input.value = '';   
        dispatch(AddTodo(input));
    }

    ...
}

function mapStateToProps(state) {
  return {
  // your mapStateToProps return object
  };
}

export default connect(mapStateToProps)(TodoForm);

答案 1 :(得分:0)

test['med_or_mean']=test.apply(lambda row: min(row.mean(), row.median()), axis=1)

输出

    city1   city2   city3   city20  med_or_mean
0   23  34  45  56  39.5
1   34  56  26  54  42.5
2   12  23  33  64  28.0
3   34  67  31  42  38.0