Python:如何计算btw当前年份和年份的差异?
问题描述:
我有一个只包含年份值的列“DateBecameRep_Year”(即1974年,1999年等)。我想在我的数据框中创建一个新的列,以计算“DateBecameRep_Year”字段中当前年份与年份之间的差异。Python:如何计算btw当前年份和年份的差异?
下面是我尝试使用代码:
df_DD['DateBecameRep_Year'] = pd.to_datetime(df_DD['DateBecameRep_Year'])
df_DD['Current Year'] = datetime.now().year
df_DD['Current Year'] = pd.to_datetime(df_DD['Current Year'])
df_DD['Years_Since_BecameRep'] = df_DD['Current Year'] - df_DD['DateBecameRep_Year']
df_DD['Years_Since_BecameRep'] = df_DD['Years_Since_BecameRep']/np.timedelta64(1, 'Y')
df_DD['Years_Since_BecameRep'].head()
这是输出我得到这看起来很奇怪:
我的假设是,这已经是与如下:
任何帮助,非常感谢!
答
如果您只是想获得不同的年份数,您可以简单地使用减法,无需转换为日期时间。
import pandas as pd
import datetime
current_year = datetime.datetime.now().year #get current year
df_DD = pd.DataFrame.from_dict({"DateBecameRep_Year":[1999,2000,2015,1898,1788,1854]})
df_DD['Current Year'] = datetime.datetime.now().year
df_DD["Years_Since_BecameRep"] = df_DD['Current Year'] - df_DD['DateBecameRep_Year'] # substract to get the year delta
df_DD
将是:
DateBecameRep_Year Current Year Years_Since_BecameRep
0 1999 2017 18
1 2000 2017 17
2 2015 2017 2
3 1898 2017 119
4 1788 2017 229
5 1854 2017 163
你可以用小重现的数据集(文本/ CSV格式)和所需的数据集扩展你的问题?目前,你现在很清楚你想达到什么目的......为什么你想要将年份(整数)转换为'datetime' dtype? – MaxU
我想你只是需要年份之间的差异?如果是的话从代码中移除第三行。 –
用'df_DD ['Years_Since_BecameRep'] = datetime.now()。year - df_DD ['DateBecameRep_Year']'代替所有代码,就这样,不是吗? –