将 pandas 日期时间月份转换为字符串表示形式

2024-02-06

我想要一个带有时间戳列的 pandas DataFrame,并且想要创建一个仅包含月份的列。我想要月份列包含月份的字符串表示形式,而不是整数。我做了这样的事情:

df['Dates'] = pd.to_datetime(df['Dates'])
df['Month'] = df.Dates.dt.month
df['Month'] = df.Month.apply(lambda x: datetime.strptime(str(x), '%m').strftime('%b'))

然而,这是某种蛮力方法并且性能不太好。有没有更优雅的方法将月份的整数表示形式转换为字符串表示形式?


使用矢量化dt.strftime http://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.dt.strftime.html在你的约会时间:

In [43]:
df = pd.DataFrame({'dates':pd.date_range(dt.datetime(2016,1,1), dt.datetime(2017,2,1), freq='M')})
df

Out[43]:
        dates
0  2016-01-31
1  2016-02-29
2  2016-03-31
3  2016-04-30
4  2016-05-31
5  2016-06-30
6  2016-07-31
7  2016-08-31
8  2016-09-30
9  2016-10-31
10 2016-11-30
11 2016-12-31
12 2017-01-31

In [44]:    
df['month'] = df['dates'].dt.strftime('%b')
df

Out[44]:
        dates month
0  2016-01-31   Jan
1  2016-02-29   Feb
2  2016-03-31   Mar
3  2016-04-30   Apr
4  2016-05-31   May
5  2016-06-30   Jun
6  2016-07-31   Jul
7  2016-08-31   Aug
8  2016-09-30   Sep
9  2016-10-31   Oct
10 2016-11-30   Nov
11 2016-12-31   Dec
12 2017-01-31   Jan
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 pandas 日期时间月份转换为字符串表示形式 的相关文章

随机推荐