我有一個我正在使用的 csv 檔案,它由幾個欄位組成。我正在添加名稱欄位 - 獲取全名,然后提取價格和數量欄位 - 它們是 CSV 檔案中的字串。
def mapper(self, key, value):
fields = value.split(",")
name = fields[6] " " fields[7]
Price = int(float(fields[4]))
Qty = int(fields[5])
avgPrice = (Price*Qty)
yield name,avgPrice
我的輸出給了我
Becca Nelson 25.0
但我錯過了小數位我認為這是因為我不得不使用 int(float(x)
我希望輸出是
Becca Nelson 25.55
我怎樣才能解決這個問題?
uj5u.com熱心網友回復:
您可以使用標準 python 模塊十進制來準確處理實際值。
from decimal import Decimal
def mapper(self, value):
fields = value.split(",")
name = fields[6] " " fields[7]
price = Decimal(fields[4]) # here
qty = int(fields[5])
avg_price = price * qty
return name, avg_price
此外,我建議您使用csv reader和pandas而不是字串操作(示例)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/361614.html
