sup*_*own 4 python excel datetime pandas
我将以下示例数据存储在 Excel 文件中
| 宣称 | 代码1 | 年龄 | 日期 |
|---|---|---|---|
| 7538 | 第359章 | 71 | 2019年11月28日 |
| 7538 | 第359章 | 71 | 2019年11月28日 |
| 540 | 第428章 | 73 | 2019年10月16日 |
| 540 | 第428章 | 73 | 2019年10月16日 |
| 605 | 1670 | 40 | 2019年4月12日 |
| 第740章 | 134 | 55 | 2019年12月24日 |
使用 pandas.read_excel API 导入到我的 Jupyter Notebook 时,日期字段的格式不正确:
excel = pd.read_excel('Libro.xlsx')
Run Code Online (Sandbox Code Playgroud)
然后我得到的日期字段有所不同,因为我在 Excel 文件中对其进行了格式化。我应该应用什么参数read_excel才能显示 Excel 文件中格式化的 DATE 列?
.info()方法,将列输出为 int64
我已经尝试过使用该pd.to_datetime函数,但得到了奇怪的结果:
在以下链接中找到我用于项目的示例 excel 文件sample_raw_data
以下是一些可用于重现从 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}
})
Run Code Online (Sandbox Code Playgroud)
Hen*_*ker 12
要将此 Excel 日期转换为datetime64[ns]用于to_datetime获取以天为单位的单位,并从origin“1899-12-30”开始偏移:
excel = pd.read_excel('Libro.xlsx')
excel['DATE'] = pd.to_datetime(excel['DATE'], unit='d', origin='1899-12-30')
Run Code Online (Sandbox Code Playgroud)
excel:
excel = pd.read_excel('Libro.xlsx')
excel['DATE'] = pd.to_datetime(excel['DATE'], unit='d', origin='1899-12-30')
Run Code Online (Sandbox Code Playgroud)
info:
CLAIM CODE1 AGE DATE
0 7538 359 71 2019-11-28
1 7538 359 71 2019-11-28
2 540 428 73 2019-10-16
3 540 428 73 2019-10-16
4 4605 1670 40 2019-12-04
5 1740 134 55 2019-12-24
6 7605 415 56 2019-12-19
Run Code Online (Sandbox Code Playgroud)
请参阅为什么 1899-12-30 是 Access/SQL Server 中的零日期而不是 12/31?有关为什么这是基准日期的更多信息。
for也可以与read_excelconverter一起DATE使用:
excel = pd.read_excel(
'Libro.xlsx',
converters={
'DATE': lambda x: pd.to_datetime(x, unit='d', origin='1899-12-30')
}
)
Run Code Online (Sandbox Code Playgroud)
info:
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 CLAIM 7 non-null int64
1 CODE1 7 non-null int64
2 AGE 7 non-null int64
3 DATE 7 non-null datetime64[ns]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
23440 次 |
| 最近记录: |