我有两个数据帧:
print (df1)
ID Birthday
0 A000 1990-01-01
1 A001 1991-05-05
2 A002 1970-10-01
3 A003 1980-07-07
4 A004 1945-08-15
print (df2)
ID Date from
0 A000 2010.01
1 A001 2012.01
2 A002 2010.01
3 A002 2010.01
4 A002 2010.11
5 A003 2009.05
6 A003 2010.01
7 A004 2010.01
8 A005 2007.11
9 A006 2017.01
df1包含ID和生日,df2包含ID和日期。df2.ID中的某些值不在df1.ID中(即A005和A006)。你知道吗
我正在尝试的:
如果df1.ID中存在df2.ID,我想计算df1.Birthday和df2.Date之间的差异
我到目前为止所做的事情:
df1['Birthday'] = pd.to_datetime(df1['Birthday'])
df2['Date from'] = pd.to_datetime(df2['Date from'])
x1 = df1.set_index(['ID'])['Birthday']
x2 = df2.set_index(['ID'])['Date from']
x3 = x2.sub(x1,fill_value=0)
print(x3)
ID
A000 -7305 days +00:00:00.000002
A001 -7794 days +00:00:00.000002
A002 -273 days +00:00:00.000002
A002 -273 days +00:00:00.000002
A002 -273 days +00:00:00.000002
A003 -3840 days +00:00:00.000002
A003 -3840 days +00:00:00.000002
A004 8905 days 00:00:00.000002
A005 0 days 00:00:00.000002
A006 0 days 00:00:00.000002
dtype: timedelta64[ns]
有一个错误,因为ID A003具有相同的值,但它包含不同的日期。我不知道怎样才能进行下一步。提前感谢您提供的任何帮助。你知道吗
首先,我会留下合并的数据帧,以确保事情是正确排列。然后减去新列中的两个日期列:
这给了我:
使用dateutil包获取年、月、日的差异:
'
相关问题 更多 >
编程相关推荐