我有一个熊猫数据框,其中有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个小数点。
答案 0 :(得分:1)
您可以修改pandas选项以显示所需的小数位数:
__init__.py