与每列的中位数比较

时间:2019-06-28 04:25:36

标签: pandas multiple-columns median operation

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

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

1 个答案:

答案 0 :(得分:1)

我从您的问题中了解到的是,您想比较其列中位数的每个列值

  1. .median()查找列的中位数并保存在列中
  2. .apply(axis = 1) axis = 1 来比较每个值与值中位数()
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)

我希望它能解决您的问题