请在这方面给我指导。我有一个如下的数据框:
df
dob date
1 8/11/1966 3/1/1990, 5/1/2000, 8/1/2010
2 6/13/1970 4/1/2014, 3/1/2016, 4/1/2017
3 10/10/2010 4/13/2017
我的目标是生成一列,显示“dob”和“date”列之间的年份差异,如下所示:
df
dob date difference
1 8/11/1966 3/1/1990, 5/1/2000, 8/1/2010 23.570, 23.740, 23.992
2 6/13/1970 4/1/2014, 3/1/2016, 4/1/2017 43.833, 45.751, 46.836
3 10/10/2010 4/13/2017 6.512
使用以下代码:
diff = (df['date'].sub(df['dob']))/365
diff = (diff / np.timedelta64(1, 'D')).astype(float)
df['difference'] = diff.round(3)
当只有一个日期时,我能够计算出差异,但是当在一个单元格中存在由逗号分隔的多个值时,无法计算。我该如何实现我的目标?非常感谢。
df['date1'],df['date2'],df['date3']
)。如果有可变数量的日期,则存在问题。您可以通过多行乘法拆分日期 (创建n行与相同数据,除了日期) 或对每个单元格应用Python函数 (可能会很慢,但根据行数而定,您可能不在意)。 - aghast