我对Python有点陌生,我有以下要求。你知道吗
Value Date Ticket Source Result
0.939531371 3/1/2018 T1 Source1 1
0.951619897 3/1/2018 T2 Source1 1
0.952681914 3/1/2018 T3 Source1 0
0.957009407 3/1/2018 T4 Source2 1
0.962669466 3/1/2018 T5 Source2 0
0.963068552 3/1/2018 T6 Source3 1
0.963480195 3/1/2018 T7 Source4 1
0.951296258 3/2/2018 T11 Source5 1
0.962434762 3/2/2018 T12 Source5 1
0.950224149 3/2/2018 T13 Source5 1
0.961191873 3/2/2018 T14 Source5 1
0.952584896 3/2/2018 T15 Source5 0
0.962093595 3/2/2018 T16 Source5 1
0.975999737 3/2/2018 T17 Source5 1
从这个数据帧我想生成下面的数据帧-
Date Source1 Source2 Source3 Source4 Source5 Overall_Result
3/1/2018 0.93 0.95 0.96 0.96 0 0.7
3/2/2018 0 0 0 0 0.95 0.85
这里涉及的计算是加权平均-
来源1- 对于给定的日期和给定的来源,我们需要获得门票的总数。对于Source1,在给定日期(2018年3月1日)有3个记录(票证)。这些票证的“值”列必须按升序排序。然后根据票的数量,将最高的权重赋予最小的“值”
0.945=(0.939531370722655*3) +(0.951619897215127*2)+(1*0.952681914218488)/3+2+1
总结果列按给定日期计算
多少是1除以当天的总票数 日期-2018年3月1日=>;1+1+0+1+0+1+1+0+1+1/10=0.66
我有大量的数据需要计算。源列值的数量也可能是巨大的。在modified dataframe中,我希望它作为一列。 一种方法是在函数中编写逻辑并调用每个记录。 欢迎任何建议或帮助。提前谢谢。你知道吗
您可以使用
pivot_table
和一个自定义聚合函数来获取第一列。和groupby
添加“Result”列。你知道吗输出:
您可能忘记在加权平均计算中使用括号:
另外,请尝试使用
"Value"
上的pivot表和自定义聚合函数:上面的函数计算一系列的加权平均值:
然后按如下方式调用此聚合函数:
返回:
那么对于整个结果:
退货
最后,您可以连接两个数据帧以获得所需的数据帧:
即
相关问题 更多 >
编程相关推荐