我有一个日期格式为“ Mar-97”的数据框,我想将其转换为“ 03-1997”。数据格式为

     Month  SilverPrice GoldPrice
0   Mar-97  186.48  12619.24
1   Apr-97  170.65  12338.59
2   May-97  170.44  12314.94
3   Jun-97  169.96  12202.78
4   Jul-97  155.80  11582.07


我已经编写了这段代码,但是它将其转换为“ 1997-03-01”

from datetime import datetime
df["Month"]=list(map(lambda x:datetime.strptime(x,'%b-%y'),df["Month"]))


输出是这样的

      Month SilverPrice GoldPrice
0   1997-03-01  186.48  12619.24
1   1997-04-01  170.65  12338.59
2   1997-05-01  170.44  12314.94
3   1997-06-01  169.96  12202.78
4   1997-07-01  155.80  11582.07


我可以通过剥离日期值来实现,但是有任何直接方法可以将其转换为“ MM-YYYY”格式。

最佳答案

pd.Series.dt.strftime

您可以通过Python的datetime directives指定strftime格式:

df['Month'] = pd.to_datetime(df['Month']).dt.strftime('%m-%Y')

print(df)

     Month  SilverPrice  GoldPrice
0  03-1997       186.48   12619.24
1  04-1997       170.65   12338.59
2  05-1997       170.44   12314.94
3  06-1997       169.96   12202.78
4  07-1997       155.80   11582.07

07-24 09:53