查找熊猫中两个日期之间差异的最简单方法

Posted

技术标签:

【中文标题】查找熊猫中两个日期之间差异的最简单方法【英文标题】:Simplest way to find the difference between two dates in pandas 【发布时间】:2016-11-06 14:53:36 【问题描述】:

我正在尝试在作为数据透视表操作的结果的多索引数据框中找到两个日期之间的差异。

数据框包含三列。第一个是measurement,第二个是end date,第三个是start date

我已经能够成功地将第三个多索引列添加到数据框中,但只是为了使结果达到单元格零

Pt["min"]["start_date"] = 0 但是当我尝试减去两个日期时出现字符串错误,并且在每列的末尾附加 .Dt.Days 也会导致错误。

在多索引熊猫数据框中查找两个日期之间天数差异的最简单方法是什么?

【问题讨论】:

【参考方案1】:

您可以在tuples的列中选择Multiindex并减去列:

print (df)
     a                        
  meas         end       start
0    7  2015-04-05  2015-04-01
1    8  2015-04-07  2015-04-02
2    9  2015-04-14  2015-04-04

#if dtypes not datetime
df[('a','end')] = pd.to_datetime(df[('a','end')])
df[('a','start')] = pd.to_datetime(df[('a','start')])

df[('a','diff')] = df[('a','end')] - df[('a','start')]

print (df)
     a                              
  meas        end      start    diff
0    7 2015-04-05 2015-04-01  4 days
1    8 2015-04-07 2015-04-02  5 days
2    9 2015-04-14 2015-04-04 10 days

如果需要输出days:

df[('a','diff')] = (df[('a','end')] - df[('a','start')]).dt.days
print (df)
     a                           
  meas        end      start diff
0    7 2015-04-05 2015-04-01    4
1    8 2015-04-07 2015-04-02    5
2    9 2015-04-14 2015-04-04   10

【讨论】:

以上是关于查找熊猫中两个日期之间差异的最简单方法的主要内容,如果未能解决你的问题,请参考以下文章

检查具有数字和字符数据的 2 个数据帧之间差异的最有效方法?

将 Java 8 中两个日期的差值(天数)作为 Short 原始类型的最简单方法

Python Pandas - 查找两个数据帧之间的差异

如何检查两个日期之间的差异(以秒为单位)?

在两个 DataFrame 之间获得 delta 的最简单方法

查找两个日期之间的差异 Oracle SQL