首页 > 解决方案 > 与每列的中位数进行比较

问题描述

如何与 pandas 数据框中每列的中值进行比较,如果值大于中值,则结果为 true,如果值小于中值,则结果为 false?

现在我正在标准化,所以基本上与每列的 0 (平均值)进行比较。想要一种方法对中位数做同样的事情。

标签: pandasmultiple-columnsmedianoperation

解决方案


我从你的问题中了解到的是你想从它的列中位数比较每一列的值

  1. .median()查找列的中值并保存在列中
  2. .apply(axis=1) with axis=1将每个值与值 median() 进行比较
df = pd.DataFrame(data={'a':[1,2,3,4,4,5],
                        'b':[1,2,3,3,3,3]})
# median of col a and col b is calculated and save in another column
df['median_a'] = df['a'].median()
df['median_b'] = df['b'].median()

# if col a value is greater than median_a then a_bool contains True else False
df['a_bool']  = df.apply(lambda  x: True if x['a']>x['median_a'] else False ,axis=1)
df['b_bool']  = df.apply(lambda  x: True if x['b']>x['median_b'] else False,axis=1)

我希望它能解决你的问题


推荐阅读