使用外部字典使用pandas数据帧计算加权平均值

时间:2019-06-06 01:21:43

标签: python pandas dataframe

我有下表和字典,并希望根据以下公式计算按每个日期分组的加权平均值。如何通过熊猫数据框实现这一目标?注意:我无法在数据框中添加字典中的值的另一列,因为实际值具有高维,这将使数据框无法容纳内存。 enter image description here

Date        ID      count   w_avg
01/01/2012  100       60    [0.791666667,0.791666667]
01/01/2012  101       80
01/01/2012  102      100
01/02/2012  201      100    [0.722222222, 0.722222222]
01/02/2012  102       80         

dict= {'100':[0.5, 0.5], '101':[0.75,0.75] '102': [1.00,0.5], '201':[0.5,1.00]}


01/01/2012 w_avg = dict[100] * ( 60/ sum(60,80,100)) + dict[101] * (80/ sum(60,80,100)) + dict[102]* (100/sum(60,80,100))

01/02/2012 w_avg = dict[201] * ( 100/ sum(100,80)) + dict[102]* ( 80/ sum(100,80))

我尝试了以下代码,但是它不起作用:

df = df.groupby(['Date').apply(
        lambda dfx: (dict[df['ID'].to_string(index=False, header=False).strip()] * dfx["count"])
        .sum() / dfx["acount"].sum()).reset_index()

0 个答案:

没有答案