Pandas to_datetime没有按预期格式化

时间:2018-04-26 06:11:31

标签: python pandas datetime

我的数据框中有一列'日期'数据类型为datetime64。值为YYYY-MM-DD格式。 如何将其转换为YYYY-MM格式并将其用作datetime64对象本身。 我尝试将我的datetime对象转换为YYYY-MM格式的字符串,然后以YYYY-MM格式转换回datetime对象,但它没有工作。

原始数据= 1988-01-01。

将数据时间对象转换为YY-MM格式的字符串

df['Date']=df['Date'].dt.strftime('%Y-%m')

这按预期工作,我的列值变为

1988-01

以Y-m格式将字符串转换回datetime对象

df['Date']=pd.to_datetime(df['Date'],format= '%Y-%m')

我期待YYYY-MM格式的Date列,但它变成了YYYY-MM-DD格式。

1988-01-01

如果我遗失了什么,能告诉我。

由于

1 个答案:

答案 0 :(得分:2)

expected behaviour,在日期时间,年份,月份和日期参数是必需的。

如果要删除days需要to_period的月份期限:

df['Date'] = df['Date'].dt.to_period('M')
df['Date'] = pd.to_datetime(df['Date'],format= '%Y-%m').dt.to_period('M')

样品:

df = pd.DataFrame({'Date':pd.to_datetime(['1988-01-01','1999-01-15'])})
print (df)
        Date
0 1988-01-01
1 1999-01-15

df['Date'] = df['Date'].dt.to_period('M')
print (df)
     Date
0 1988-01
1 1999-01