在Pandas身上把时间拼成日历月

2024-06-16 08:30:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我有关于咒语(住院)的数据,每个咒语都有开始和结束日期,但我想计算每个日历月住院的天数。当然,这个数字可以在没有出现在咒语中的几个月内为零。但是我不能把每个咒语的长度仅仅归因于开始的月份,因为更长的咒语会延续到下个月(或者更多)。你知道吗

基本上,如果我能在月初的日期时间里减少拼写,从第一个例子中的数据到第二个例子中的数据就足够了:

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

我读过关于熊猫的书,但我没有看到一个简单的解决办法。如何完成切片?你知道吗


Tags: 数据id时间切片数字start咒语例子
1条回答
网友
1楼 · 发布于 2024-06-16 08:30: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。你知道吗

这是截止日期时间,您可以使用它来计算每个月的入住部分。开始是第一个月,结束是第二个月。你知道吗

相关问题 更多 >