当列类似于“ Jan-18”时,如何将熊猫列转换为日期?

时间:2018-06-19 13:41:19

标签: python pandas datetime

当给定的值(例如“ Feb-15”)必须为“ 01-02-2015”时,将列值转换为日期“ DD-MM-YYYY”的有效方法是什么。如果它是“ Dec-46”,则必须返回“ 01-12-1946”。

1 个答案:

答案 0 :(得分:0)

您可以将格式'%b-%y'传递给to_datetime

In[42]:
df = pd.DataFrame({'date':["Feb-15","Dec-46"]})
df['new_date'] = pd.to_datetime(df['date'], format='%b-%y')
df

Out[42]: 
     date   new_date
0  Feb-15 2015-02-01
1  Dec-46 2046-12-01

请注意,新的dtypedatetime64,您无法控制显示输出,如果您坚持使用DD-MM-YYYY,则必须使用dt.strftime转换为字符串:

In[43]:
df['str_date'] = df['new_date'].dt.strftime('%d-%m-%Y')
df

Out[43]: 
     date   new_date    str_date
0  Feb-15 2015-02-01  01-02-2015
1  Dec-46 2046-12-01  01-12-2046

但是如果您需要执行算术运算或过滤,那么您的字符串就没那么有用了

编辑

您不能存储早于1970年的日期,因此'01-01-1946'不是可以由datetime64表示的有效日期时间