如何使用Pandas以所需的语言从Excel中读取日期列?

时间:2019-04-02 18:37:32

标签: python pandas datetime

我正在使用pandas.read_excel()将excel表转换为数据框以在Python中使用。该表包含以下格式的日期列:01Jun2018。 当我运行指令时,表就变成了数据帧。问题出在我现在在墨西哥工作的月份,该月缩写用西班牙语拼写。因此,日期列会显示一些具有正确日期时间类型信息的单元格,但最初包含与西班牙语月份名称不对应的月份的单元格(例如:april != abril, January != Enero)会显示原始字符串。我需要对日期进行一些操作,因此此列必须完全是datetime-type。

我尝试将语言环境切换为en_US,但是什么也没发生。

1 个答案:

答案 0 :(得分:0)

您需要使用locale来设置语言环境。如果您已经有了这样的数据框:

       dates
0  01Ene2018
1  20Feb2018
2  01Jun2018

然后,您需要在设置区域设置后使用pd.to_datetime更改该列的类型:

import locale
import pandas as pd
locale.setlocale(locale.LC_ALL, locale.locale_alias["es_mx"])
df.dates = pd.to_datetime(df.dates, format="%d%b%Y")
print(df.dates)

输出:

0   2018-01-01
1   2018-02-20
2   2018-06-01
Name: dates, dtype: datetime64[ns]

这是假设您在系统中安装了es_MX语言环境,否则将需要安装它。