python - 如何使用 Python 将每日数据转换为每周、每月和每季度
问题描述
我想使用 python 将每日数据转换为每周、每月和每季度的数据
输入
|Employee Name |Subjects |Billable |Hours |Date
|Deepak |Java |Yes |8 |01-03-2021
|Deepak |Python |No |9 |02-03-2021
|Deepak |SQL |No |6 |03-03-2021
|Deepak |React |Yes |5 |03-03-2021
|Deepak |Python |No |8 |04-03-2021
|Deepak |Java |Yes |9 |05-03-2021
|Deepak |.Net |No |9 |06-03-2021
|Deepak |SQL |No |9 |07-03-2021
|Ravi |SQL |No |5 |01-03-2021
|Ravi |Python |Yes |4 |01-03-2021
|Ravi |Java |Yes |2 |02-03-2021
|Ravi |.Net |No |8 |03-03-2021
|Ravi |React |Yes |7 |04-03-2021
|Ravi |.Net |No |5 |05-03-2021
|Ravi |React |Yes |9 |06-03-2021
|Ravi |React |Yes |9 |07-03-2021
应在输出文件中添加列:Utilization、Billable Utilization、Non-Billable Utilization
利用率列的计算:利用率 = df[小时]/9*100
-> 如果计费列值为“是”” - 创建列作为计费利用率
列中的计费利用率计算:计费利用率 = df[小时]/9 * 100
-> 如果计费列值为“NO”” - 将列创建为不可计费利用率
列中非计费利用率的计算:非计费利用率 = df[Hours]/9*100
代码
df = df.pivot_table(index=['Date', 'Employee Name'], columns='Billable').reset_index()
df.columns = ['Date', 'Employee Name', 'Non-Billable', 'Billable']
# compute utilization
available=9
df['Non-Billable'] = df['Non-Billable'].div(available).mul(100).round(2)
df['Billable'] = df['Billable'].div(available).mul(100).round(2)
df['Utilization'] = df[['Billable', 'Non-Billable']].fillna(0).sum(axis=1)
#Modify the columns order
df = df[['Date', 'Employee Name', 'Utilization', 'Billable', 'Non-Billable']]
我的输出
预期产出
解决方案
推荐阅读
- sql - SQL查询拆分由对组成的长字符串
- angular - 如何在没有 shell UI 的情况下独立执行 Angular 库
- listview - Xamarin ListView 添加/删除项目太慢
- reactjs - 做出反应。如何访问已创建的组件对象的状态或道具?
- mysql - 如何从 mysql 中的特定检查点恢复数据库?
- python - wget如何使用通配符下载更改文件夹下的更改文件
- solace - 安慰主题端点保证交付
- node.js - 在 MongoDb ( Node.js ) 中返回插入的文档
- c# - 如何在asp.net的新闻中获取类别计数使用
- scala - 当我在泛型函数中转换数据类型时无效。toint 被调用,但 v 的类型仍然是 double