python - df to datetime 对象中的 YYMM 整数
问题描述
我得到了一个带有“DOB”列的数据框,即出生日期。它被格式化为 YYMM 格式的 int。我需要它的日期时间对象。
df['DOB'] = pd.to_datetime(df['DOB'], format='%y%y%m%m')
df['DOB'] = pd.to_datetime(df['DOB'], format='%y%m')
那没有用。
我想将列中的所有值调整为正确的日期时间对象,最后是否有一天都没关系
解决方案
假设您有一个 4 位整数作为数据框的一列。您可以按如下方式转换为日期时间:
dob = ['2007','1605','1709','1809','0605','0812']
df = pd.DataFrame(dob,columns=['DOB'])
for i in range(len(df['DOB'])):
split_list = [df.DOB.loc[i][:2],df.DOB.loc[i][2:]]
df['DOB'].loc[i] = '-'.join(split_list)
df['DOB'] = pd.to_datetime(df['DOB'], format='%y-%m')
新数据框有一列类型为 datetime64[ns]。您还可以分别提取年份和月份,如下所示:
df['year'] = pd.DatetimeIndex(df['DOB']).year
df['month'] = pd.DatetimeIndex(df['DOB']).month
现在最终的数据框有 3 列。一个是日期,另一个是年和月。
推荐阅读
- discord - Discord webhook 问题(Google 表单对 discord 的响应)
- amazon-web-services - 自动接受来自另一个 AWS 账户的 Transit Gateway 附件
- sql - 未分组条件的用例表达式
- python-3.x - 为什么 x='b'*4 在 Python 中大于 y='a'*5?
- java - Java:获取索引越界异常
- jdbc - 找不到数据库驱动程序:net.snowflake.client.jdbc.SnowflakeDriver
- git - 如何检查 git 命令、子命令字符串或参数是否有效?
- laravel - Laravel 6 在从 CakePHP 2.x 迁移期间使用自定义哈希器
- php - AJAX/PHP - 使用一个 ajax 调用填充不同类型的输入字段
- kubernetes - 为什么这个 Kubernetes pod 没有触发我们的自动扩缩器进行扩容?