我正在尝试使用yyyy-mm-dd格式的列并转换为mm-dd格式(或MON DD,也适用),同时保留日期或数字格式。我曾尝试使用pd.to_datetime,但它似乎不起作用,因为它需要年份,所以它最终填充新的列与1900年。我不是在寻找转换,其中新列是一个对象,因为我需要使用该列以后绘制。什么是最好的方法?数据框非常小。
OldDate NewDate1 NewDate2 NewDate3
2017-01-02 01-02 01/02 Jan 2
2015-05-14 05-14 05/14 May 14
答案 0 :(得分:1)
您可以在OldDate上使用子字符串概念,如下所示:
OldDate = '2017-01-02'
NewDate1=OldDate[5:]
print(NewDate1) # This will give result as : "01-02"
NewDate2 = OldDate[5:7] + "/" + OldDate[8:10]
print(NewDate2) # This will give result as "01/02"
答案 1 :(得分:0)
假设你有:
df = pd.DataFrame({"OldDate":["2017-01-02","2015-05-14"]})
df
OldDate
0 2017-01-02
1 2015-05-14
然后你可以这样做:
from datetime import datetime as dt
df['OldDate'] = df.OldDate.apply(lambda s: dt.strptime(s, "%Y-%m-%d"))
df['NewDate1'] = df.OldDate.dt.strftime("%m-%d")
df['NewDate2'] = df.OldDate.dt.strftime("%m/%d")
df['NewDate3'] = df.OldDate.dt.strftime("%b %d")
df
OldDate NewDate1 NewDate2 NewDate3
0 2017-01-02 01-02 01/02 Jan 02
1 2015-05-14 05-14 05/14 May 14