【问题标题】:Calculate days between 2 datetime columns in dask dataframe计算 dask 数据框中 2 个日期时间列之间的天数
【发布时间】:2019-03-26 18:24:01
【问题描述】:

我有一个包含两列的 dask 数据框,是字符串格式,像这样

start_date  end_date
2018-09-01  2018-10-01
2018-09-02  2018-09-22
...

我想计算两列之间的天数。如果是 pandas 数据框,我可以这样做:

df["num_days"] = (df["end_day"]-df["start_date"]).apply(lambda s:s.total_seconds()/24/60/60)

但在 dask 数据框中,这似乎不起作用。在这种情况下,无论如何要计算到列之间的经过天数?

谢谢

【问题讨论】:

    标签: python pandas datetime dataframe dask


    【解决方案1】:

    dask.dataframe 支持有用的 Pandas API 子集,包括 Series.dt 方法。因此,您可以直接使用此功能:

    import dask.dataframe as dd
    
    df = dd.read_csv(r'file.csv', delim_whitespace=True,
                     parse_dates=['start_date', 'end_date'])
    
    df['days'] = (df['end_date'] - df['start_date']).dt.days
    
    print(df.compute())
    
      start_date   end_date  days
    0 2018-09-01 2018-10-01    30
    1 2018-09-02 2018-09-22    20
    

    【讨论】:

      猜你喜欢
      • 2012-07-24
      • 2014-09-19
      • 1970-01-01
      • 1970-01-01
      • 2021-10-13
      • 2015-02-26
      • 2019-09-27
      相关资源
      最近更新 更多