使用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=
,但无济于事。这可能是挑剔,但在我的代码中实现是一个很好的功能。
答案 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