对于每个“名称”,我希望按降序计算“小时数”列,然后如果“名称”的小时数达到38,我需要:
在到达第38个小时的行下面插入一个新行(绿色)(称之为旧行;蓝色)。
加上剩余的小时数,使老行达到38(Ankit为4.5,Abhishek为8)
将原始值的余额添加到下面行/单元格中的新值
下面是反映之前的代码。没有必要包括颜色,我只是添加了他们的演示文稿
import pandas as pd
df = pd.DataFrame()
df['number'] = (651,651,651,4267,4267,4267,4267,4267,4267,4267,8806,8806,8806,6841,6841,6841,6841)
df['name']=('Alex','Alex','Alex','Ankit','Ankit','Ankit','Ankit','Ankit','Ankit','Ankit','Abhishek','Abhishek','Abhishek','Blake','Blake','Blake','Blake')
df['hours']=(8.25,7.5,7.5,7.5,14,12,15,11,6.5,14,15,15,13.5,8,8,8,8)
df['loc']=('Nar','SCC','RSL','UNIT-C','UNIT-C','UNIT-C','UNIT-C','UNIT-C','UNIT-C','UNIT-C','UNI','UNI','UNI','UNKING','UNKING','UNKING','UNKING')
print(df)
1条答案
按热度按时间zlhcx6iw1#
IIUC,您可以使用
groupby
操作:输出: