【问题标题】:Polars read_excel converting dates to stringsPolars read_excel 将日期转换为字符串
【发布时间】:2023-02-09 02:20:42
【问题描述】:

所以我正在使用 polars read_excel 函数,我正在从 excel 文件中读取一些日期。但是,当我读入它们时,它们被格式化为格式为“mm-dd-yy”的字符串。这导致了问题,因为我在 excel 文件中有一个日期 01/01/1950(它被转换为“01-01-50”),但是当我去使用由polars,我的代码认为日期是 01/01/2050,因为我没有完整的年份。

您可以在下面的 print() 语句中看到,即使我输入的是 2050 年和 1950 年的日期,当使用极坐标时,它们在 DF 中看起来是相同的日期。那么有没有办法引入全年值来防止这种情况发生并区分实际日期呢?

代码:

import polars as pl
    
extracted = pl.read_excel('file_name.xlsx')
print(extracted)

文件名.xlsx:

打印(提取)=

【问题讨论】:

  • 你是如何将字符串转换为 polars 中的日期的?你能显示你的代码吗?
  • 添加在代码和屏幕截图中。您可以看到,在提取 1950 年和 2050 年日期时,拉入具有完全相同值的 df。 @ignoring_gravity
  • 另外,我没有转换它。这就是它是如何被 pl.read_excel() 引入的

标签: python python-polars


【解决方案1】:

您还没有提供任何代码,所以很难说出您到底想要什么,但是如果您向Datetime 提供一种格式,那么您应该能够得到您想要的日期:

In [10]: pl.Series(['01-01-50']).str.strptime(pl.Datetime, fmt='%d-%m-%y')
Out[10]:
shape: (1,)
Series: '' [datetime[μs]]
[
        1950-01-01 00:00:00
]

【讨论】:

  • 添加在代码和屏幕截图中。可以看到提取1950年和2050年的日期时,拉入df的值完全一样
猜你喜欢
  • 2015-04-27
  • 2011-11-28
  • 2016-05-03
相关资源
最近更新 更多