将字符串转换为日期格式

时间:2016-05-10 11:39:21

标签: python string datetime pandas dataframe

我有一个数据框,其中一列字符串表示月份和年份(MM-YY),但我需要它像YYYY,MM,DD,例如2015,10,01

for i in df['End Date (MM-YY)']:
    print i

    Mar-16
    Nov-16
    Jan-16
    Jan-16

    print type(i)

    <type 'str'>
    <type 'str'>
    <type 'str'>
    <type 'str'>

3 个答案:

答案 0 :(得分:1)

我认为您可以将to_datetime与参数format一起使用:

df = pd.DataFrame({'End Date (MM-YY)': {0: 'Mar-16', 
                                        1: 'Nov-16', 
                                        2: 'Jan-16', 
                                        3: 'Jan-16'}})
print df
  End Date (MM-YY)
0           Mar-16
1           Nov-16
2           Jan-16
3           Jan-16

print pd.to_datetime(df['End Date (MM-YY)'], format='%b-%y')
0   2016-03-01
1   2016-11-01
2   2016-01-01
3   2016-01-01
Name: End Date (MM-YY), dtype: datetime64[ns]

df['date'] = pd.to_datetime(df['End Date (MM-YY)'], format='%b-%y')

如果您需要将date列转换为月中的最后一天,请使用MonthEnd

df['date-end-month'] = df['date'] + pd.offsets.MonthEnd()
print df

  End Date (MM-YY)       date date-end-month
0           Mar-16 2016-03-01     2016-03-31
1           Nov-16 2016-11-01     2016-11-30
2           Jan-16 2016-01-01     2016-01-31
3           Jan-16 2016-01-01     2016-01-31

答案 1 :(得分:0)

您可以使用Lambda和Map函数,其引用位于此处12以及带参数格式的to_datetime。

您能否提供有关您正在使用的数据的更多信息。我可以根据这部分信息进一步完善我的答案。谢谢!

答案 2 :(得分:0)

如果你想做我认为你的事情......

使用datetime.datetime.strptime方法!这是一种很好的方式来指定您希望日期显示在字符串中的格式,并且它会返回一个很好的日期时间obj,供您使用。

您甚至可以使用datetime.datetime.strftime将其重新转换为格式不同的字符串!