我有一个非常大的日期数据集,我试图计算每个月的天数。以下是数据集中的示例:
LoadDate DischDate
87364 01/07/2017 00:22:16 16/07/2017 08:10:55
745999 08/06/2017 19:38:06 12/06/2017 15:20:59
1870836 17/02/2018 19:51:15 10/04/2018 03:53:57
436131 17/11/2015 00:00:17 06/01/2016 11:00:01
984437 26/11/2016 14:48:47 15/12/2016 18:39:54
使用下面的代码,我能够找出天数,但是输出是四舍五入的,所以不是例如显示;在3月18日花费了10.86天,它将产出11天
dates.join(dates.apply(lambda x: pd.Series(pd.date_range(x.LoadDate,
x.DischDate, freq='D')).dt.strftime('%m-%y'),1)
.apply(lambda x: x.value_counts(),1)
.rename(columns=lambda x: pd.to_datetime(x, format='%m-%y').strftime('%b-%y')))
我将上面pd.date\u range公式中的频率从freq='D'改为freq='T',以计算分钟数,然后除以1440,以获得准确的天数。然而,这个过程非常耗时,即使是在数据集的一个小样本上,而且根本不具有可伸缩性
变更后的eg代码:
dates.join(dates.apply(lambda x: pd.Series(pd.date_range(x.LoadDate,
x.DischDate, freq='T')).dt.strftime('%m-%y'),1)
.apply(lambda x: x.value_counts(),1)
.rename(columns=lambda x: pd.to_datetime(x, format='%m-%y').strftime('%b-%y'))/1440)
我应该如何改进这段代码的性能,并能够将其扩展到1.1gb大小的数据集
非常感谢你的帮助
你知道吗-- 黑曼巴
目前没有回答
相关问题 更多 >
编程相关推荐