我的合同第一行开始于2008年02月11日,结束于2011年03月28日。我想计算从2008到2011之间每年的周年日期(适用于144份及其他合同)
主要目标是检查每一行合同的周年日期是否正确,如果不正确,则计算它并用正确的值更新开始和结束
*这是我的熊猫数据框架,涉及两个合同“144”和“150”:
*这是我想要得到的数据帧:
这是我的代码,仅当我只有一个Num\u合同,但不与2个或更多Num\u合同一起工作时才有效
for NUM_contrat in df['NUM_contrat'].unique():
for i in df['index'].unique():
for index,row in df.iterrows():
if df.iloc[index]['end'] > df.iloc[index]['anniversary']:
df1=pd.DataFrame(df.iloc[index]).transpose()
df.loc[index, 'end'] = df.loc[index, 'anniversary']
df= pd.concat([df,df1],ignore_index=True).sort_values(['start','end']).reset_index(drop=True)
df.loc[index+1,'start'] = df.loc[index,'anniversary']
df.loc[index+1,'anniversary'] = df.loc[index,'anniversary'] + relativedelta(years=1)
return df
explode()
它可以生成所需的行输出
更新:根据您的评论,每个合同有多行
下面的代码片段可以回答您的问题
相关问题 更多 >
编程相关推荐