【发布时间】:2019-09-16 08:14:12
【问题描述】:
我正在尝试对列引用运行中值 IF NOT EQUAL。我可以分组并运行中位数。但是,我无法通过不等于引用列中的值/字符来运行中值组。
import pandas as pd
# intialise data of lists.
data={'id':[ 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],
'var1':['var1','var1','var1','var1','var1','var1','var1','var1','var1','var1','var2','var2','var2','var2','var2'],
'var2':[ 'A','A','A','B','B','B','C','C','C','A','A','A','B','B','C'],
'var3':[ 'A','A','A','A','A','A','A','A','A','A','A','A','A','A','A'],
'values':[ 10,870,1731,80,110,3848,3590,344,30,60,60,190,440,780,1460]}
#Create DataFrame
df=pd.DataFrame(data)
Excel Formula:-
=MEDIAN(IF($B:$B=H2,IF($C:$C<>$I2,$E:$E)))
Column reference:
B - var1 (input), H - grouped var1 (below output var1), C - var2(Input), I - (below output var2), E - values in input file.
Desired Output -
var1,var2,median
var1,A,227
var1,B,344
var1,C,110
var2,A,780
var2,B,190
var2,C,315
我正在尝试编写中值 IF S。在 Excel 中使用的公式上方提供。
【问题讨论】:
-
用文字解释你的逻辑,而不显示一些没有任何意义的 excel 公式,因为我们不知道哪一列是什么。
-
你试过,而不是
=MEDIAN(IF($B:$B=H2,IF($C:$C<>$I2,$E:$E)))...=MEDIAN(IF(AND($B:$B=H2,$C:$C<>$I2),$E:$E))???该双重条件不会按预期工作。 -
您能解释一下如何在不显示 excel 公式的情况下为
var1, A获得 227。 -
我正在尝试针对 var 1 列中的 var 1 而不是 var 2 列中的 A(即 B 和 C)针对输出中的 1 行(即 var1,A,227)获取所有值的中位数.
-
groupby 中值的中位数 [值为 'var1' 的行和值为非 'var2' 的行]。这就是我在 excel 公式中使用 表示不等于的原因。
标签: python excel pandas group-by median