df
| 產品 | 價格 | 稅 |
|---|---|---|
| 叉 | 14,00 美元 | 0.40 美元 |
| 刀 | 23,00 美元 | 0.85 美元 |
| 刀 | 23,00 美元 | 0.91 美元 |
| 刀 | 23,00 美元 | 0.77 美元 |
df_sum_price = df['Price'].sum()
df_sum_tax = df['Tax'].sum()
df_sum_price
df_sum_tax
想要的輸出:
>>> U$ 83,00
U$ 2,93
我怎樣才能做到這一點?因為我需要在將 Object 轉換為 Int 或 Float 之前,但我不知道為什么!.-. 請幫幫我
uj5u.com熱心網友回復:
據我所知,Python 中沒有貨幣型別。我猜你的“價格”列是一個字串?第一個操作是將此列轉換為浮點數。為此,您必須洗掉數字前面的“U$”,然后將“,”變成“。” 能夠將您的字串變成浮點數。所以這樣做的功能是:
def price_to_float(price):
return(float(price[3:].replace(',','.')))`
然后,只需將此功能應用于您的整個列:
df['Price']=df.apply(lambda row : price_to_float(row['Price']), axis = 1)
df['Tax']=df.apply(lambda row : price_to_float(row['Price']), axis = 1)
現在您可以執行所有您想要的操作!然后,如果需要,您可以將列轉回貨幣字串。
uj5u.com熱心網友回復:
如果您可以選擇在資料框中轉換資料型別,則可以執行此操作
df['Tax']=(df['Tax'].str[3:]).str.replace(',','').astype(int)
df['Price']=(df['Price'].str[3:]).str.replace(',','').astype(int)
output:
Product Price Tax
0 Fork 1400 40
1 Knife 2300 85
2 Knife 2300 91
3 Knife 2300 77
df_sum_price = df['Price'].sum()
df_sum_tax = df['Tax'].sum()
df_sum_price
df_sum_tax
output:
8300
293
如果您沒有更改資料型別的自由,只想執行求和,請執行以下操作:
df_sum_price = (df['Tax'].str[3:]).str.replace(',','').astype(int).sum()
df_sum_tax = (df['Price'].str[3:]).str.replace(',','').astype(int).sum()
df_sum_price
df_sum_tax
兩種情況下的輸出相同。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/414792.html
標籤:
