我需要根据日期列创建一个新列作为计费和非计费。
第 1 列的条件:如果开始日期是NULL
OR BLANK
(OR) 如果它的开始日期在“未来日期”(OR) 如果它的开始日期在“过去日期”(OR) 如果它的结束日期在过去日期那么我应创建一个新列作为非计费。
第 2 列的条件:如果开始日期在“当前日期”中,则需要创建一个新列作为“可计费”并需要计算它。计算应该在行轴上。
连续计费计算:Billing = df[Billing] * sum/168 * 100
非计费行计算:Non-Billing = df[Non-Billing] * sum/ 168 * 100
数据:
Employee Name | Java | Python | .NET | React | Start Date | End Date |
|Anu | 10 | 10 | 5 | 5 | 04-21-2021 | |
|Kalai | | 10 | | 5 | 04-21-2021 | 10-31-2021 |
|Smirthi | | 10 | 20 | | 03-21-2021 | |
|Madhu | 20 | 10 | 10 | | 01-12-2021 | |
|Latha | 40 | | 5 | | | |
输入
输出
代码:
# Adding new columns
total=df.sum(axis=1)
df.insert(len(df.columns),column='Total',value=total)
# Adding Utilization column utilization = (total/168)
df.insert(len(df.columns), column='Utilization', value=utilization)
# Filter dataframe using groupby
df1 = df.groupby(['Employee Name']).sum(min_count=1)
df1['Available'] = 168