我有一个数据框,其中一列字符串表示月份和年份(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'>
答案 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)
答案 2 :(得分:0)
如果你想做我认为你的事情......
使用datetime.datetime.strptime
方法!这是一种很好的方式来指定您希望日期显示在字符串中的格式,并且它会返回一个很好的日期时间obj,供您使用。
您甚至可以使用datetime.datetime.strftime
将其重新转换为格式不同的字符串!