python - Pandas:按双月日期字段分组
问题描述
我正在尝试按每月两次的医院工作人员工作时间分组。我每天都有原始数据,如下所示。
date hourse_spent emp_id
9/11/2016 8 1
15/11/2016 8 1
22/11/2016 8 2
23/11/2016 8 1
我想分组的方式是。
cycle hourse_spent emp_id
1/11/2016-15/11/2016 16 1
16/11/2016-31/11/2016 8 2
16/11/2016-31/11/2016 8 1
我正在尝试对熊猫中的石斑鱼和频率做同样的事情,如下所示。
data.set_index('date',inplace=True)
print data.head()
dt = data.groupby(['emp_id', pd.Grouper(key='date', freq='MS')])['hours_spent'].sum().reset_index().sort_values('date')
#df.resample('10d').mean().interpolate(method='linear',axis=0)
print dt.resample('SMS').sum()
我也试过resampling
df1 = dt.resample('MS', loffset=pd.Timedelta(15, 'd')).sum()
data.set_index('date',inplace=True)
df1 = data.resample('MS', loffset=pd.Timedelta(15, 'd')).sum()
但这给出了 15 天间隔的数据,而不是 1 到 15 和 15 到 31。
请让我知道我在这里做错了什么。
解决方案
你快到了。这会做到 -
dt = df.groupby(['emp_id', pd.Grouper(key='date', freq='SM')])['hours_spent'].sum().reset_index().sort_values('date')
emp_id date hours_spent
1 2016-10-31 8
1 2016-11-15 16
2 2016-11-15 8
thefreq='SM'
是半月的概念,它将使用15th
每个月的 the 和最后一天
推荐阅读
- sql - 在其中之一 - 在 cloudera
- python-3.x - 使用 '<=' 将函数应用于列表
- angular - 子类构造函数中的依赖注入
- ios - Ionic 3,IOS,应用内购买
- java - 元数据提取器类文件无法在 java 类中导入
- algorithm - 用一个常数因子确定嵌套循环的时间和空间复杂度
- classification - KNIME - 多个属性上的字符串到文档节点
- google-maps - Google Places API - 地点详细信息查找的“place_id”结果不正确
- swagger-editor - 为什么 Swagger Editor 不发送 Cookie 标头?
- java - FileDescriptor.in 与 System.in