我在数据框中有一个日期列。我想更改该列中日期的格式

时间:2019-08-20 16:03:27

标签: python pandas

我在数据集中有一个日期列,其中的日期类似于“ Apr-12”,“ Jan-12”格式。我想将格式更改为04-2012,01-2012。我正在寻找可以做到这一点的功能。

3 个答案:

答案 0 :(得分:0)

我想我认识一个同名的家伙。这里开个玩笑是解决您的问题的方法。 我们确实有一个名为 strptime()的内置函数,因此它将占用字符串,然后转换为所需的格式。

  
      
  1. 您需要先导入datetime,因为它是python datetime包的一部分。不需要安装任何东西,只需将其导入。
  2.   
  3. 然后这是这样的:datetime.strptime(your_string, format_you_want)
  4.   
# You can also do this, from datetime import * (this imports all the functions of datetime)
from datetime import datetime
str = 'Apr-12'
date_object = datetime.strptime(str, '%m-%Y')
print(date_object)

我希望这对您有用。编码愉快:)

答案 1 :(得分:0)

您可以执行以下操作:

import pandas as pd

df = pd.DataFrame({
    'date': ['Apr-12', 'Jan-12', 'May-12', 'March-13', 'June-14']
})

pd.to_datetime(df['date'], format='%b-%y')

This will output:

0   2012-04-01
1   2012-01-01
2   2012-05-01
Name: date, dtype: datetime64[ns]

这意味着您可以立即更新date列:

df['date'] = pd.to_datetime(df['date'], format='%b-%y')

答案 2 :(得分:0)

您可以将几个熊猫方法链接在一起,以获得所需的输出:

df = pd.DataFrame({'date_fmt':['Apr-12','Jan-12']})
df

输入数据框:

  date_fmt
0   Apr-12
1   Jan-12

使用与pd.to_datetime日期访问器和.dt链接的strftime

pd.to_datetime(df['date_fmt'], format='%b-%y').dt.strftime('%m-%Y')

输出:

0    04-2012
1    01-2012
Name: date_fmt, dtype: object