Python 将MM-DD添加到年份
我有一个包含出生年份的熊猫数据框架:Python 将MM-DD添加到年份,python,pandas,datetime,Python,Pandas,Datetime,我有一个包含出生年份的熊猫数据框架: Name Birth Year Joe 2000 Bill 1998 Mike 1996 Frank 1995 我想添加一个名为“DOB”的列,将相同的MM-DD添加到出生年份中,这样数据框看起来像: Name Birth Year DOB Joe 2000 2000-04-13 Bill 1998 1998-04-13 M
Name Birth Year
Joe 2000
Bill 1998
Mike 1996
Frank 1995
我想添加一个名为“DOB”的列,将相同的MM-DD添加到出生年份中,这样数据框看起来像:
Name Birth Year DOB
Joe 2000 2000-04-13
Bill 1998 1998-04-13
Mike 1996 1996-04-13
Frank 1995 1995-04-13
错误地说,这是我的尝试:
df['DOB'] = str(df['Birth Year'] + '-' + '04-13').dt.strftime('%y-%m-%d)
关于如何有效地执行此操作,有什么建议吗?如果希望列的类型为DateTime
,请使用:
df['DOB'] = pd.to_datetime(df['Birth_Year'].astype(str) + '-04-13', format='%Y-%m-%d')
print(df)
输出
Name Birth_Year DOB
0 Joe 2000 2000-04-13
1 Bill 1998 1998-04-13
2 Mike 1996 1996-04-13
3 Frank 1995 1995-04-13
如果希望列的类型为DateTime
,请使用:
df['DOB'] = pd.to_datetime(df['Birth_Year'].astype(str) + '-04-13', format='%Y-%m-%d')
print(df)
输出
Name Birth_Year DOB
0 Joe 2000 2000-04-13
1 Bill 1998 1998-04-13
2 Mike 1996 1996-04-13
3 Frank 1995 1995-04-13
这应该能奏效
df['DOB']=df['Birth Year'].astype(str)+“-04-13”
您遇到的问题是,“出生年份”列可能是一个数字,而不是一个字符串
df['DOB']=df['Birth Year'].astype(str)+“-04-13”
您遇到的问题是,“出生年份”列可能是一个数字而不是字符串
可以获取具有适当命名列的数据帧。所需的最小列为['Year'、'Month'、'Day']
dates = pd.DataFrame({'Year': df['Birth Year'], 'Month': 4, 'Day': 13})
df.assign(DOB=pd.to_datetime(dates))
Name Birth Year DOB
0 Joe 2000 2000-04-13
1 Bill 1998 1998-04-13
2 Mike 1996 1996-04-13
3 Frank 1995 1995-04-13
查看日期
的外观
dates
Year Month Day
0 2000 4 13
1 1998 4 13
2 1996 4 13
3 1995 4 13
pandas.to\u datetime
可以获取具有适当命名列的数据帧。所需的最小列为['Year'、'Month'、'Day']
dates = pd.DataFrame({'Year': df['Birth Year'], 'Month': 4, 'Day': 13})
df.assign(DOB=pd.to_datetime(dates))
Name Birth Year DOB
0 Joe 2000 2000-04-13
1 Bill 1998 1998-04-13
2 Mike 1996 1996-04-13
3 Frank 1995 1995-04-13
查看日期
的外观
dates
Year Month Day
0 2000 4 13
1 1998 4 13
2 1996 4 13
3 1995 4 13
谢谢你的帮助@好极了,我能帮上忙!谢谢你的帮助@好极了,我能帮上忙!你想要像datetime一样的结果还是字符串?DatiTimeResults。你想要像datetime一样的结果还是字符串?DatiTimeResults。这很有效;但是,我需要将它格式化为to_datetimeThis works;但是,我需要将它格式化为to_datetime