Python yfinance下载数据导出Excel时如何去除时区与时分时间?
解决方案
问题原因
yfinance下载的时间序列默认返回带时区的datetime类型索引,导出到Excel时会自动携带时分秒与时区标识,不符合月线数据的显示需求。
解决方法
方法1:导出前处理Pandas索引(推荐,保留日期格式支持Excel后续计算)
只需要在调用to_excel前添加一行代码处理索引即可,修改后的完整代码如下:
import os import yfinance import pandas as pd from openpyxl import Workbook from openpyxl import load_workbook a=yfinance.download('CS.PA', interval='1mo') print(a) # 新增代码:去除时区+清除时间部分 a.index = a.index.tz_localize(None).floor('D') save_name="C:\\Users\\Lex02\\Desktop\\Python2\\Bourse essai_3.xlsx" a.to_excel(save_name) a_excel=load_workbook(filename=save_name) ws=a_excel.active os.system('pause')
如果你需要将日期固定为字符串格式(比如2024-01-01),可以把上面新增的代码替换为:a.index = a.index.strftime('%Y-%m-%d')
注意:该方法导出的日期为文本格式,无法在Excel中直接参与日期运算
方法2:Excel端直接处理(无需修改代码)
如果已经导出了Excel文件,直接按以下步骤操作:
- 选中所有日期所在的列
- 右键点击选择「设置单元格格式」
- 在「数字」选项卡中选择「自定义」
- 类型输入框中填入你需要的日期格式,比如
yyyy/m/d或者yyyy年m月d日 - 点击确定后,时分秒与时区信息就会被隐藏,仅显示日期部分
内容的提问来源于stack exchange,提问作者Meriole
相关产品推荐
相关产品推荐

