2017-01-27 3 views
-2

아래의 가중 평균을 찾으려고합니다. 나는 총이 감소하면 줄일 수 없습니다 가중 평균 가격으로 cummax 사용하고cummax가없는 가중 평균 가격

a['Change'] = a['Total'] - a['Previous Quarter'] 
a['Amount'] = a['Price']*a['Change'] 
a['Cum Sum Amount'] = np.cumsum(a['Amount']) 
a['WAP'] = (a['Cum Sum Amount']/a['Total']).cummax() 

그것을 할 아래의 공식을 사용하고

a = {'Price': [10, 15, 5, 25, 30], 'Total': [10000, 12000, 15000, 14000, 0], 
    'Previous Quarter': [0, 10000, 12000, 15000, 14000]} 
a = pd.DataFrame(a) 
print (a) 

. 이것은 잘 작동하지만 총액은 증가하지만 가격이 하락하면 가중 평균 가격은 감소해야하지만 cummax로 인해 감소 할 수 있습니다.

a['Change'] = a['Total'] - a['Previous Quarter'] 
a['Amount'] = a['Price']*a['Change'] 
a['Cum Sum Amount'] = np.cumsum(a['Amount']) 
a['WAP'] = [10, 10.83, 10.00, 10.00, 0] 
+0

"나는 총이 감소하면 줄일 수 없습니다 가중 평균 가격으로 cummax 사용하고 있습니다 "너 무슨 뜻이야? WAP의 가치가 무엇이든간에 초기 가격 이하로 떨어질 수 없다는 것이 당신의 제약 중 하나임을 암시하는 것입니까? 또는 다른 것? – Boud

+0

[wap ']에서 3 번째 숫자를 가져 가면 원하는 방식으로 10.83에서 10으로 줄어 듭니다. 이것은 정확하지만 cummax는 값을 10.83에 유지합니다. 그러나 cummax를 사용하지 않으면 총 수가 감소하기 때문에 4 번째 숫자도 10이 감소합니다. 그러나 현실에서는 그렇지 않습니다. 그래서 총계가 감소한 후 cummax가된다면 총계가 증가한다면 cummax가 아니라고 말하면됩니다. – ben121

답변

0

가중 평균 가격은 단지 수익/볼륨 :

는 방법이 너무 아래 같은이 볼 수 있었다입니다. (이 행이 분기하여 오름차순으로 정렬하는 것으로 가정) 자신의 컬럼에 분기 매출과 볼륨을 브레이크하고 cumsums를 분할 :

a = {'Price': [10, 15, 5, 25, 30], 'Total': [10000, 12000, 15000, 14000, 0], 
    'Previous Quarter': [0, 10000, 12000, 15000, 14000]} 
a = pd.DataFrame(a) 

a["quarter_volume"] = a["Total"] - a["Previous Quarter"] 
a["quarter_revenue"] = a["Price"] * a["quarter_volume"] 
a["quarter_revenue"].cumsum()/a["quarter_volume"].cumsum() 
+0

총계를 사용하는 것을 제외하고는 가중 평균이 감소합니다. 나는 이것을 피하려고 노력 중이다. – ben121

+0

미안하지만 무슨 뜻인지 모르겠다. 음수 판매가있는 경우 가중 평균 *이 감소해야합니다. – sundance