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

如何将Pandas中yfinance获取的毛利率列显示为百分比

保留原始数值同时以百分比格式显示Pandas数据列

要实现保留原始小数数值用于计算,仅在显示时转为百分比格式,可以通过以下两种方式实现,不会修改原始数据:

方法1:设置Pandas全局显示格式(临时生效)

通过pd.options.display.float_format设置全局浮点数显示规则,所有浮点数列会按百分比格式展示,但原始数据依然是小数,不影响后续计算。

修改后的代码如下:

import yfinance as yf
import pandas as pd

# 定义股票代码
ticker = "AAPL"

# 下载财务数据
company = yf.Ticker(ticker)
financials = company.financials

# 获取毛利率数据(原始值为小数)
gross_margins = financials['Gross Margins']

# 设置浮点数显示格式为百分比(保留两位小数)
pd.options.display.float_format = '{:.2%}'.format

# 显示数据(此时显示为百分比,原始值仍是小数)
print(gross_margins)

# 保存CSV时导出原始小数数值,不受显示格式影响
gross_margins.to_csv('gross_margins.csv', header=True)

# 如需恢复默认显示格式,执行:
# pd.options.display.float_format = None

方法2:使用Pandas Styler格式化显示(灵活针对单列)

如果只想给目标列设置显示格式,不影响其他列,可以用Styler对象,终端打印或Jupyter Notebook中都能看到格式化效果:

import yfinance as yf
import pandas as pd

ticker = "AAPL"
company = yf.Ticker(ticker)
financials = company.financials
gross_margins = financials['Gross Margins']

# 针对毛利率列设置百分比显示格式
styled_margins = gross_margins.to_frame().style.format({'Gross Margins': '{:.2%}'})

# 显示格式化后的内容
print(styled_margins)

# 保存CSV仍用原始数值
gross_margins.to_csv('gross_margins.csv', header=True)

关键说明

  • 两种方法都不会修改原始DataFrame中的小数数值,完全不影响后续计算逻辑
  • 保存CSV文件时,导出的依然是原始小数数据,显示格式仅作用于终端打印或可视化展示

内容的提问来源于stack exchange,提问作者Economist Learning Python

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 18:42:22