我有一个像这样的熊猫数据框:
Name start end
A 2000-01-10 1970-04-29
我想添加一个新列以提供start
和end
列之间的年,月,日之间的差。
所以结果应该看起来像:
Name start end diff
A 2000-01-10 1970-04-29 29y9m etc.
diff列也可以是datetime
对象或timedelta
对象,但是对我来说,关键点在于,我可以轻松地从中获得Year和Month。] >
直到现在我一直尝试的是:
df['diff'] = df['end'] - df['start']
这将导致新列包含
10848 days
。但是,我不知道如何将天转换为29y9m等
我有一个如下所示的pandas数据框:命名开始端A 2000-01-10 1970-04-29我想添加一个新列,以提供开始列和结束列之间的差值,以年为单位,...
通过简单的功能,您可以实现目标。
该函数通过简单的计算来计算年差和月差。
relativedelta
非常简单:
我认为这是最“熊猫”的方式,无需使用任何for循环或定义外部函数:
一种简单得多的方法是使用date_range函数并计算相同的长度
您可以尝试使用以下函数来计算差异-
类似于@DeepSpace的答案,这是类似SAS的实现:
您可以尝试用这种方式用年创建一个新列: