python - StyleFrame 插件不尊重 number_format
问题描述
无论我尝试过什么,StyleFrame 似乎都坚持以 DD/MM/YYYY 格式格式化所有日期。我试图让它们格式化为 MM/DD/YYYY。
我正在尝试使用 number_format 来控制它,但它似乎在生成的 Excel 文件中被完全忽略了。我已经能够成功应用许多其他类型的样式,例如字体大小、文本对齐方式和列宽,但它似乎忽略了 number_format。
具体来说,我正在尝试这样做:
sf = StyleFrame(exampleDataFrame)
sf.apply_column_style(cols_to_style=['Start Date', 'End Date'],
width=35, styler_obj=Styler(number_format='MM/DD/YYYY', font_size=10))
宽度和字体大小按预期应用,但不是日期格式。
解决方案
StyleFrame 似乎坚持在 DD/MM/YYYY 中格式化所有日期
这是正确的,并且是由于在造型过程的设计中存在一些疏忽。
在正式修复之前,一种可行的解决方法是覆盖日期(或日期时间)对象的基础默认样式。不幸的是,这不提供对特定列的控制,并且必须在创建StyleFrame
对象之前完成。
我将为此创建一个 github 问题,以便将来对其进行研究。
import pandas as pd
from styleframe import StyleFrame, utils
df = pd.DataFrame({'a': ['11/12/2020']})
df['a'] = pd.to_datetime(df['a'])
orig_date_time_format = utils.number_formats.default_date_time_format
utils.number_formats.default_date_time_format = 'YYYYMMDD'
sf = StyleFrame(df)
sf.to_excel('test.xlsx').save()
utils.number_formats.default_date_time_format = orig_date_time_format
这将导致20201112
在单元格中。
推荐阅读
- java - 如何将查询结果映射到java中的字符串数组
- reactjs - 尝试在表中创建新条目时网络中的待处理状态
- bash - shell脚本中的while循环条件
- javascript - 如何共享延续的中间结果?
- python - Flask 和 Dash 应用程序之间的连接
- java - 套接字抛出异常,尽管端口是空闲的
- javascript - 在我的购物机器人代码中运行其余代码之前,是否可以强制页面加载下一页?
- ruby-on-rails - 摆脱嵌套哈希中的“重复”
- audiokit - AKMusicTrack 的 Midi 控制映射
- python - 如果值满足条件python,则计算值的更快方法