python - Pandas to_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
将字符串转换回 Ym 格式的日期时间对象
df['Date']=pd.to_datetime(df['Date'],format= '%Y-%m')
我期待 YYYY-MM 格式的日期列,但它变成了 YYYY-MM-DD 格式。
1988-01-01
如果我遗漏了什么,请告诉我。
谢谢
解决方案
这是预期的行为,在日期时间中需要年、月和日参数。
如果想通过以下方式删除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
推荐阅读
- r - 如何使用代码将魔法图像类对象编写为 png 文件?
- python - 哈佛在线 CS50 - 学位
- css - 查询交互式报告失败并突出显示行 css 条件
- c++ - 如何从文件中读取数据并将文件中的名称存储在一个向量中,并将文件中的分数存储在另一个向量中?
- python - 文本文件读取偏移与python中seek和tell定义的块不一致
- swift - 如何在 Xcode 中使用 Swift 链接多个 collada 动画?
- javascript - Django Rest Framework 和 React 前端:如何防止未经授权的用户在获取图像 URL 时查看私人图像?
- android - 将 mimetype 'application/octet-stream' 与 SAF 选择器一起使用适用于本地文件,但不适用于 Google Drive 中的相同文件
- javascript - 无法读取 register.js 上未定义错误的属性“映射”
- reactjs - useEffect 是否应该成为大数据处理的首选钩子?