我的数据框中有一列'日期'数据类型为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
如果我遗失了什么,能告诉我。
由于
答案 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