【问题标题】:Pandas DF convert date string to date year and month [duplicate]Pandas DF将日期字符串转换为日期年月[重复]
【发布时间】:2020-08-26 12:31:23
【问题描述】:

大家好,我在数据框中有一列如下所示:

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'>

有什么想法或参考可以提供帮助吗? 谢谢!

【问题讨论】:

  • pd.to_datetime(df["Date"]).dt.month 和年份相同。

标签: python pandas


【解决方案1】:

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

试试这个:

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

【讨论】:

    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-04
      • 2016-03-14
      • 2011-01-15
      • 2013-06-25
      相关资源
      最近更新 更多