gpt4 book ai didi

python - Pandas 将数字四舍五入为 0

转载 作者:太空宇宙 更新时间:2023-11-03 14:07:43 24 4
gpt4 key购买 nike

我正在尝试为单元格分配一个值,但 Pandas 将其四舍五入为零。 (我使用的是Python 3.6)

in: df['column1']['row1'] = 1 / 331616

in: print(df['column1']['row1'])

out: 0

但是如果我尝试将此值分配给标准 Python 字典键,它就可以正常工作。

in: {'column1': {'row1': 1/331616}}

out: {'column1': {'row1': 3.0155360416867704e-06}}

我已经这样做了,但没有帮助:

  • pd.set_option('精度',50)
  • pd.set_option('chop_threshold',.00000000005)

请帮忙。

最佳答案

pandas 似乎假定您的数据类型是整数 (int)

有多种方法可以解决此问题,可以在构造 DataFrame 时将数据类型设置为 float,或者通过更改(或转换)数据类型(也称为 dtype) )动态地转换为float

在构造过程中设置数据类型(dtype):

>>> import pandas as pd

在制作这个简单的 DataFrame 时,我们提供了一个示例值 (1),并且 DataFrame 的列在创建过程中被定义为包含 float

>>> df = pd.DataFrame([[1]], columns=['column1'], index=['row1'], dtype=float)
>>> df['column1']['row1'] = 1 / 331616
>>> df
column1
row1 0.000003

动态转换数据类型:

>>> df = pd.DataFrame([[1]], columns=['column1'], index=['row1'], dtype=int)
>>> df['column1'] = df['column1'].astype(float)
>>> df['column1']['row1'] = 1 / 331616
df
column1
row1 0.000003

关于python - Pandas 将数字四舍五入为 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48749995/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com