【发布时间】:2021-10-02 13:34:48
【问题描述】:
我在 Excel 文件中存储了以下示例数据
| CLAIM | CODE1 | AGE | DATE |
|---|---|---|---|
| 7538 | 359 | 71 | 28/11/2019 |
| 7538 | 359 | 71 | 28/11/2019 |
| 540 | 428 | 73 | 16/10/2019 |
| 540 | 428 | 73 | 16/10/2019 |
| 605 | 1670 | 40 | 04/12/2019 |
| 740 | 134 | 55 | 24/12/2019 |
使用 pandas.read_excel API 导入我的 Jupyter Notebook 时,日期字段的格式不正确:
excel = pd.read_excel('Libro.xlsx')
然后我得到了不同的日期字段,因为我在 excel 文件中对其进行了格式化。我应该对 read_excel 应用什么参数才能显示我在 excel 文件中格式化的 DATE 列?
.info() 方法,将列输出为 int64
我已经尝试过使用pd.to_datetime 函数,但我得到了奇怪的结果:
在以下链接sample_raw_data中找到我用于我的项目的示例 excel 文件
这里有一些代码可以用来重现从 excel 中读取的 DataFrame:
excel = pd.DataFrame({
'CLAIM': {0: 7538, 1: 7538, 2: 540, 3: 540, 4: 4605, 5: 1740, 6: 7605},
'CODE1': {0: 359, 1: 359, 2: 428, 3: 428, 4: 1670, 5: 134, 6: 415},
'AGE': {0: 71, 1: 71, 2: 73, 3: 73, 4: 40, 5: 55, 6: 56},
'DATE': {0: 43797, 1: 43797, 2: 43754, 3: 43754, 4: 43803, 5: 43823,
6: 43818}
})
【问题讨论】:
-
你需要在
pd.read_excel中使用date_parser参数 -
date_parser将不起作用,因为 pandas 会将DATE识别为 int,因此不应用日期解析器。并且尝试将 Date 的 dtype 强制为datetime64[ns]将得到与 1970-01-01 日期相同的错误。 @尔凡