首页 > 解决方案 > 使用 Pandas 中的“to_datetime”函数将月份名称转换为十进制

问题描述

我有一个包含“月”列的数据框数据:

      year      month  passengers
0    1949    January         112
1    1949   February         118
2    1949      March         132
3    1949      April         129
4    1949        May         121

我想将月份列转换为零填充十进制数,所以我使用以下内容:

import pandas as pd
pd.to_datetime(data['month'], format= '%B')

我希望这会将月份名称转换为零填充小数,但我得到以下信息:

0     1900-01-01
1     1900-02-01
2     1900-03-01
3     1900-04-01
4     1900-05-01

我想我可以使用正则表达式从返回的数据中推断月份数,但我想必须有一种更简洁的方法来做到这一点。

我对 Python 有点陌生,所以任何帮助将不胜感激!非常感谢您的阅读。

标签: pythonpandas

解决方案


使用pandas.Series.dt.strftime

df["months"] = pd.to_datetime(df['month'], format= '%B').dt.strftime("%m")
print(df)

输出:

   year     month  passengers months
0  1949   January         112     01
1  1949  February         118     02
2  1949     March         132     03
3  1949     April         129     04
4  1949       May         121     05

推荐阅读