在Python Pandas中保留月份和日期作为日期格式

时间:2017-03-19 03:49:26

标签: python date pandas

我正在尝试使用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

2 个答案:

答案 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