You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何设置pandas_datareader避免自动对读取的数值进行四舍五入

解决pandas_datareader读取极低价格标的时自动四舍五入问题

原因说明

该问题通常由两种情况导致:一是pandas默认浮点数显示精度不足导致仅展示为0.0,实际存储的数值正常;二是数据读取时自动使用的低精度浮点数类型无法承载极小数值,出现实际精度截断。

解决方法

场景1:仅显示异常,实际数值正常

首先执行以下代码验证数值是否真的被截断:
print(btc_price['Close'].values[0])
如果输出可以看到正确的极小数值,仅调整pandas全局显示配置即可:

import pandas as pd
# 全局设置浮点数显示为10位小数,可根据需求调整位数
pd.set_option('display.float_format', '{:.10f}'.format)

# 也可以设置动态精度,仅对极小值展示更多小数位
pd.set_option('display.float_format', lambda x: f'{x:.10f}' if x < 0.0001 else f'{x:.2f}')

场景2:实际存储数值已被截断为0.0

读取数据时强制指定价格字段使用64位浮点数类型,避免低精度类型的精度损失:

import pandas_datareader.data as web
import numpy as np

btc_price = web.DataReader(
    'SHIB-USD', 
    'yahoo', 
    start_date,
    end_date,
    dtype={
        'Open': np.float64,
        'High': np.float64,
        'Low': np.float64,
        'Close': np.float64,
        'Adj Close': np.float64,
        'Volume': np.int64
    }
)

内容的提问来源于stack exchange,提问作者texasraj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 20:06:01