![](/img/trans.png)
[英]How to add two columns based on one columns in this dataframe and two columns in the orther one?
[英]How to add two columns of a dataframe as Decimals?
我正在嘗試使用 Python 中的Decimal
模塊將兩列添加在一起,但似乎無法獲得正確的語法。 我有 2 列稱為month1
和month2
並且不希望它們在結果中的任何時候成為float
s,因為除法然后需要四舍五入。
month1
和month2
列已經是小數點,因為它們是平均值,我需要在加法中保持這種准確性。
我可以在線查看有關如何使用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.