python - Pandas :按双月日期字段分组

标签 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

我正在尝试对 Pandas 中的石斑鱼和频率做同样的事情,如下所示。

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()

我也试过重采样

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

freq='SM' 是半月的概念,将使用每个月的15日和最后一天

关于python - Pandas :按双月日期字段分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53097026/

相关文章:

python - 使用 BeautifulSoup 将 HTML 表格数据解析为字典

python - 连接 pandas 数据框时出错

Python 困惑——约定、名称和值

python - 检查 Firebase 应用程序是否已在 python 中初始化

pandas - iPython - 在新选项卡中显示完整数据框

python - 将 (df.info) 方法输出存储在 DataFrame 或 CSV 中

python - 打印定义 lambda 函数的代码

python - 在 .csv 文件中读取时,我似乎无法指定列数据类型

python线性回归以日期为轴

python - Pandas 按应用于列的功能分组