我有一个不同城市的温度数据集(总城市数= 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)
答案 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