python-3.x - 取最近的日期和最远的日期,并使用 .groupby 计算它们之间的月份
问题描述
我想获取这些日期之间的月数(在最大日期和最小日期之间)并在 groupby 中保持相同的顺序
解决方案
一种可能的解决方案是从dateac开始- 您的分组结果(显示在您的图片中)。我还假设源 DataFrame 的ORDER_INST列是datetime类型(不是字符串),因此只有这种类型在 datesac 中也具有 MultiIndex 的级别1。
要分别计算每个 MRN(MultiIndex 的级别 0)的月份跨度,请定义一个函数,以应用于每个组:
def monthSpan(grp):
dates = grp.index.get_level_values(1)
return (dates.max().to_period('M') - dates.min().to_period('M')).n
然后将MonthSpan列添加到您的df中,运行:
datesac['MonthSpan'] = datesac.groupby(level=0).transform(monthSpan);
结果是:
List MonthSpan
MRN ORDER_INST
1000031 2010-04-12 0 11
2010-04-16 0 11
2010-04-17 0 11
2010-04-18 0 11
2011-03-01 0 11
9017307 2018-11-27 0 7
2019-02-04 0 7
2019-04-25 0 7
2019-05-14 0 7
2019-06-09 0 7
推荐阅读
- android - Firebase 电话身份验证在 Android 中不起作用
- android - 如何使用 base64 加载带有毕加索的图像?
- java - 如何在 Spring AMQP 中解析 JSON 对象?
- r - 基于后缀匹配的杂乱数据中的新变量
- php - 设置 post_tag 所有帖子
- ios - 从字符串中获取静态变量
- javascript - [type] 类型的参数不可分配给 [type] 类型的参数
- python - S3Cmd 参数问题:Nothing to upload 错误
- python - 以特定频率扩展数据框 - Python
- javascript - 将 getBoundingClientRect 值赋予元素