我有关于咒语(住院)的数据,每个咒语都有开始和结束日期,但我想计算每个日历月住院的天数。当然,这个数字可以在没有出现在咒语中的几个月内为零。但是我不能把每个咒语的长度仅仅归因于开始的月份,因为更长的咒语会延续到下个月(或者更多)。你知道吗
基本上,如果我能在月初的日期时间里减少拼写,从第一个例子中的数据到第二个例子中的数据就足够了:
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
我读过关于熊猫的书,但我没有看到一个简单的解决办法。如何完成切片?你知道吗
这比你想象的要简单:只需减去日期。结果是一个时间跨度。见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。你知道吗
这是截止日期时间,您可以使用它来计算每个月的入住部分。开始是第一个月,结束是第二个月。你知道吗
相关问题 更多 >
编程相关推荐