首页 > 解决方案 > 如何使用 Pandas 以所需语言从 excel 中读取日期列?

问题描述

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

我尝试将语言环境切换为en_US但没有任何反应。

标签: pythonpandasdatetime

解决方案


您需要使用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在系统中安装了语言环境,否则您将需要安装它。


推荐阅读