Python熊猫将4列与十进制值相乘

时间:2019-01-10 08:47:57

标签: python pandas multiplication

我有一个熊猫数据框,其中有4列包含十进制值,我必须将其乘以创建5列并包含答案。例如

col1   col2   col3   col4
0.03   0.02   0.01   0.05
0.12   0.32   0.05   0.03

我尝试使用以下代码进行乘法:

df['col5'] = df['col1']*df['col2']*df['col3']*df['col4']

我正在获取诸如以下的值:

3.600000e-06
1.701000e-04

我不知道该怎么读。我尝试将这些数字四舍五入为8位数字。

round(df['col5'], 8)

不起作用。但是

round(df['col5'], 6)  

有效。我想得出至少8个小数点。因此,我尝试使用

将列转换为十进制列
from decimal import Decimal
df['col5'] = df['col5'].apply(Decimal)

这有效...但是它提供了很长的十进制字符串,由于出现错误,我无法四舍五入:

TypeError: unsupported operand type(s) for *: 'decimal.Decimal' and 'float'

相反,我尝试使用format将其转换为字符串:

df['col5'] = format(df['col5'], ".8f")  

但出现错误:

TypeError: unsupported format string passed to Series.__format__

如何将4列相乘并将第5列中的值保留为最多8个小数点。

1 个答案:

答案 0 :(得分:1)

您可以修改pandas选项以显示所需的小数位数:

__init__.py