【问题标题】: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 也会导致错误。

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

【问题讨论】:

    标签: python pandas dataframe time-series multi-index


    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 2017-09-07
      • 2019-01-03
      • 2016-11-13
      • 1970-01-01
      • 2017-03-21
      • 1970-01-01
      • 1970-01-01
      • 2016-11-30
      • 1970-01-01
      相关资源
      最近更新 更多