Pandas Read_Excel日期时间转换器

时间:2017-03-22 17:03:49

标签: python pandas datetime

使用Python 3.6和Pandas 0.19.2:如何读取excel文件并将列直接从read_excel更改为日期时间?与This Question about converters and dtypes相似。但我想在某一栏中读到datetime

我想改变这个:

import pandas as pd
import datetime
import numpy as np

file = 'PATH_HERE'

df1 = pd.read_excel(file)

df1['COLUMN'] = pd.to_datetime(df1['COLUMN']) # <--- Line to get rid of

之类的: df1 = pd.read_excel(file, dtypes= {'COLUMN': datetime})

代码没有错误,但在我的示例中,COLUMN在调用int64之后仍然是print(df1['COLUMN'].dtype)的dtype

我尝试使用np.datetime64代替datetime。我也尝试使用converters=代替dtypes=,但无济于事。这可能是挑剔,但在我的代码中实现是一个很好的功能。

3 个答案:

答案 0 :(得分:12)

通常,阅读Excel工作表将使用Excel工作表中定义的dtypes,但您无法像read_csv中那样指定dtypes。您可以提供converters arg,您可以为其传递列的dict,并使用func调用以转换列:

df1 = pd.read_excel(file, converters= {'COLUMN': pd.to_datetime})

答案 1 :(得分:1)

在撰写本文时,

read_excel 支持 dtype,就像 read_csv 一样:

import datetime

import pandas as pd


xlsx = pd.ExcelFile('path...')
df = pd.read_excel(xlsx, dtype={'column_name': datetime.datetime})

https://pandas.pydata.org/docs/reference/api/pandas.read_excel.html

答案 2 :(得分:0)

另一种读取 excel 文件并将列直接从 read_excel 更改为日期时间的方法如下;

import pandas as pd

file = 'PATH_HERE'

df1 = pd.read_excel(file, parse_dates=['COLUMN'])

作为参考,我使用的是 python 3.8.3