我的目标是删除索引并更改日期格式。这是数据框:
Date tsla goog aapl msft
0 30-Dec-16 217.50 782.78 117.20 62.99
1 29-Dec-16 219.20 785.93 117.11 63.20
2 28-Dec-16 223.80 794.23 118.02 63.40
3 27-Dec-16 222.25 797.86 117.80 64.07
4 23-Dec-16 213.45 792.74 116.52 63.54
5 22-Dec-16 209.99 793.32 116.51 64.10
6 21-Dec-16 212.23 796.68 117.40 63.70
7 20-Dec-16 209.00 798.65 117.50 63.80
以下是我希望它的外观:
Date tsla goog aapl msft
2016-12-30 217.50 782.78 117.20 62.99
2016-12-29 219.20 785.93 117.11 63.20
2016-12-28 223.80 794.23 118.02 63.40
2016-12-27 222.25 797.86 117.80 64.07
2016-12-23 213.45 792.74 116.52 63.54
2016-12-22 209.99 793.32 116.51 64.10
2016-12-21 212.23 796.68 117.40 63.70
2016-12-20 209.00 798.65 117.50 63.80
我尝试了我在Reformatting a list of date strings to day, month, year in Python找到的内容:
dfTSLA = [datetime.datetime.strptime(str(i), '%d-%m-%y').strftime('%y-%m-%d') for i in dfTSLA]
但我收到错误"时间数据' \ ufeffDate'不匹配格式'%d-%m-%y'",这是有道理的我猜。不确定如何去做,因为月份是一个字符串
答案 0 :(得分:1)
你可以这样做
如果要将类型更改为str
df=pd.DataFrame(["30-Dec-16"],columns=['Date'])
df['Date']=pd.to_datetime(df['Date']).map(lambda x: x.strftime('%Y-%m-%d'))
如果要保留datetime64类型
df['Date']=pd.to_datetime(df['Date']).dt.normalize()