我有法术(住院)的数据,每个数据都有开始和结束日期,但我想计算历月的住院天数。当然,在没有出现在咒语中的几个月里,这个数字可以是零。但是我不能仅仅将每个法术的长度归因于开始的月份,因为更长的法术会延续到下一个月(甚至更长)。
基本上,如果我可以从第一个示例中的数据到第二个示例中的数据,减少月初日期时间的拼写,这对我来说就足够了:
id start end
1 2011-01-01 10:00:00 2011-01-08 16:03:00
2 2011-01-28 03:45:00 2011-02-04 15:22:00
3 2011-03-02 11:04:00 2011-03-05 05:24:00
id start end month stay
1 2011-01-01 10:00:00 2011-01-08 16:03:00 2011-01 7
2 2011-01-28 03:45:00 2011-01-31 23:59:59 2011-01 4
2 2011-02-01 00:00:00 2011-02-04 15:22:00 2011-02 4
3 2011-03-02 11:04:00 2011-03-05 05:24:00 2011-03 3我读过熊猫的Time Series / Date functionality,但我看不到一个简单的解决方案。怎样才能完成切片呢?
发布于 2015-09-23 06:21:55
这比你想象的要简单:只需减去日期。结果是一个时间跨度。请参阅Add column with number of days between dates in DataFrame pandas
您甚至可以一次对整个框架执行此操作:http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.subtract.html
更新,现在我更好地理解了这个问题。添加一个新列:获取咒语的结束日期;如果开始日期在不同的月份,则将这个新日期的日期设置为01,时间设置为00:00。
这是您可以用来计算可归因于每个月的逗留部分的削减DateTime。cut - start是第一个月,end - cut是第二个月。
https://stackoverflow.com/questions/32727762
复制相似问题