计算 dask 数据框中 2 个日期时间列之间的天数
Calculate days between 2 datetime columns in dask dataframe
我有一个包含两列的 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 数据帧中,这似乎不起作用。无论如何计算在这种情况下列之间经过的天数?
谢谢
dask.dataframe
supports a useful subset of the Pandas API, including 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
我有一个包含两列的 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 数据帧中,这似乎不起作用。无论如何计算在这种情况下列之间经过的天数?
谢谢
dask.dataframe
supports a useful subset of the Pandas API, including 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