Python:如何计算当前年份和列中年份之间的差异?
我有一个列“DateBecameRep_Year”,其中只包含年份值(即1974年、1999年等)。我想在我的数据框中创建一个新列,用于计算当前年份与“DateBecameRep_year”字段中年份之间的差异 下面是我尝试使用的代码:Python:如何计算当前年份和列中年份之间的差异?,python,datetime,dataframe,difference,Python,Datetime,Dataframe,Difference,我有一个列“DateBecameRep_Year”,其中只包含年份值(即1974年、1999年等)。我想在我的数据框中创建一个新列,用于计算当前年份与“DateBecameRep_year”字段中年份之间的差异 下面是我尝试使用的代码: df_DD['DateBecameRep_Year'] = pd.to_datetime(df_DD['DateBecameRep_Year']) df_DD['Current Year'] = datetime.now().year df_DD['Curre
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?我想您需要的只是年份之间的差异?如果是这样,请从代码中删除第三行。将所有代码替换为df_DD['Years\u Since\u BecameRep']=datetime.now().year-df_DD['DateBecameRep\u year']
仅此而已,否?是的,您是对的。。。我应该把df_DD['DateBecameRep_Year']作为一个浮点数,然后减去——谢谢@我想你只需要:df\u DD['Years\u Since\u BecameRep']=pd.datetime.now().year-df\u DD['DateBecameRep\u year']