【发布时间】:2019-01-23 20:09:29
【问题描述】:
我正在尝试计算以下数据框中每个区域的“价格”列的加权平均值,而不考虑小时数。我想基本上将匹配 A 的数量相加,将每个单独的数量行除以该数量(以获得权重),然后将其乘以价格。
大约有 200 个区域,我很难写出一般会检测到区域匹配的东西,而不必写 df['ZONE'] = 'A' 等。请帮助我迷失的自我 =)
HOUR: 1,2,3,1,2,3,1,2,3
ZONE: A,A,A,B,B,B,C,C,C
PRICE: 12,15,16,17,12,11,12,13,15
QUANTITY: 5,6,1 5,7,9 6,3,2
我不确定你是否可以一般地写一些东西,但我想如果我写一个函数,其中 x 是我的“区域”,创建一个包含可能区域的列表,然后创建一个 for 循环。这是我写的函数,并没有真正起作用 - 试图弄清楚我还能如何使它起作用
def wavgp(x):
df.loc[df['ZONE'].isin([str(x)])] = x
【问题讨论】:
标签: python pandas dataframe weighted-average