查找熊猫中两个日期之间差异的最简单方法
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 原始类型的最简单方法