簡體   English   中英

如何將 dataframe 的兩列添加為小數?

[英]How to add two columns of a dataframe as Decimals?

我正在嘗試使用 Python 中的Decimal模塊將兩列添加在一起,但似乎無法獲得正確的語法。 我有 2 列稱為month1month2並且不希望它們在結果中的任何時候成為float s,因為除法然后需要四舍五入。

month1month2列已經是小數點,因為它們是平均值,我需要在加法中保持這種准確性。

我可以在線查看有關如何使用Decimal將數字相加的指南,但不能看到如何將其應用於 pandas dataframe 中的列。 我試過這樣的事情:

df['MonthTotal'] = Decimal.decimal(df['Month1']) + Decimal.decimal(df['Month1'])

解決辦法是什么?

from decimal import Decimal

def convert_decimal(row):
    row["monthtotal"] = Decimal(row["month1"])+Decimal(row["month2"])
    return row

df = df.apply(convert_decimal, axis =1)

decimal.Decimal旨在接受單個值,而不是pandas.Series它們。 假設您的列包含表示數字值的字符串,您可以使用.applymap來使用decimal.Decimal元素,即:

import decimal
import pandas as pd
df = pd.DataFrame({'x':['0.1','0.1','0.1'],'y':['0.1','0.1','0.1'],'z':['0.1','0.1','0.1']})
df_decimal = df.applymap(decimal.Decimal)
df_decimal["total"] = df_decimal.x + df_decimal.y + df_decimal.z
print(df_decimal.total[0])
print(type(df_decimal.total[0]))

output

0.3
<class 'decimal.Decimal'>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM