python中的字符串日期转换

2024-06-28 15:05:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个日期格式为“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”

^{pr2}$

输出是这样的

      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

我可以通过剥离day值来实现这一点,但是有没有任何直接的方法可以将其转换为“MM-YYYY”格式呢。在


Tags: 数据方法代码格式aprjunmarmay
3条回答

你可以:

from datetime import datetime

import pandas as pd

data = ['Mar-97',
        'Apr-97',
        'May-97',
        'Jun-97',
        'Jul-97']

df = pd.DataFrame(data=data, columns=['Month'])
df["Month"] = list(map(lambda x: datetime.strptime(x, '%b-%y').strftime('%m-%Y'), df["Month"]))
print(df)

输出

^{pr2}$

^{}

您可以通过Python的^{} directives指定datetime格式:

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

此数据集中的日期列格式混乱。两个明显的区别是“98年3月”和“2-9月”。 如果在excel中打开,这两种格式都是可见的。在

The solution for this is, 

df['Month'] = pd.to_datetime(df["Month"].apply(lambda x: datetime.strptime(x,'%b-%y'))).dt.strftime('%m-%Y') 

相关问题 更多 >