[英]calculate percentage difference - python
我正在計算列表中兩個值之間的百分比差異。
#cal percentage dff: (val2/val)/100
values = [0.11889, 0.07485, 0.01070, 0.03076, 0.01606]
values = [int(round(i*100)) for i in values]
conversion_values = []
for x in range(1, len(values), 1):
val_1 = values[x-1]
if val_1 == 0.0: #Check if val_1 is 0.
conversion_values.append('-')
else:
val_2 = values[x]
diff = (val_2/val_1)*100
conversion_values.append(diff)
conversion_values
output:
[0, 0, 300, 0]
所需的輸出:
[58, 14, 300, 67]
不知道我在做什么錯嗎? 在Excel中,此計算工作正常,但在此處不行,必須與小數點有關?
注意-這不是關於百分比變化的問題,完全是另一回事。
您在執行(val_2)/val_1
時失去了精度,因此將其中一個轉換為float以獲得浮點數的最終結果,然后將結果轉換為int
values = [0.11889, 0.07485, 0.01070, 0.03076, 0.01606]
values = [int(round(i*100)) for i in values]
conversion_values = []
for x in range(1, len(values), 1):
val_1 = values[x-1]
if val_1 == 0.0: #Check if val_1 is 0.
conversion_values.append('-')
else:
val_2 = values[x]
diff = int(round((float(val_2)/val_1)*100)) # change to float -->round--> int
conversion_values.append(diff)
conversion_values
輸出:
[58, 14, 300, 67]
看起來您正在使用整數除法。 請改寫這個
diff = (val_2/val_1)*100
對此
diff = (val_2/float(val_1))*100
甚至對此
diff = (val_2/(val_1 * 1.0))*100
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.