如何将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
相关产品推荐
相关产品推荐

