将日期字符串转换为日期年和月

2024-06-17 09:55:50 发布

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

嗨,我在数据框中有一列,看起来像:

print(df['Date']):

29-Nov-16
4-Dec-16
1-Oct-16
30-Nov-19
30-Jun-20
28-Apr-16
24-May-16

我试图得到一个输出,看起来像

print(df):
Date            Month          Year
29-Nov-16       Nov             2016
4-Dec-16       Dec             2016
1-Oct-16       Oct             2016
30-Nov-19       Nov             2019
30-Jun-20       Jun             2020
28-Apr-16       Apr             2016
24-May-16       May             2016

我尝试了以下方法:

df['Month'] = pd.datetime(df['Date']).month
df['Year'] = pd.datetime(df['Date']).year

但是我得到了TypeError: cannot convert the series to <class 'int'>

有什么想法或参考资料可以帮忙吗? 谢谢


Tags: 数据方法dfdatetimedateyearoctnov
2条回答

使用strftimestr.split并将它们分配给新列

df_final = df.assign(**pd.to_datetime(df['Date']).dt.strftime('%b-%Y')
                                                 .str.split('-', expand=True)
                                                 .set_axis(['Month','Year'], axis=1))

Out[32]:
        Date Month  Year
0  29-Nov-16   Nov  2016
1   4-Dec-16   Dec  2016
2   1-Oct-16   Oct  2016
3  30-Nov-19   Nov  2019
4  30-Jun-20   Jun  2020
5  28-Apr-16   Apr  2016
6  24-May-16   May  2016

pd.datetime(df['Date'])之后缺少dt

试试这个:

df['Month'] = pd.datetime(df['Date']).dt.month
df['Year'] = pd.datetime(df['Date']).dt.year

相关问题 更多 >