-1

I want to minus the data from 5 days ago.

For example: Id:1, Date: 6/10/2023, Data: 22. Id:1, Date: 6/5/2023, Data: 15

Result: Id:1, Date: 6/10/2023, Data: 22, Diff: 7

Please see the image.

Data Set

  • 1
    please do not use images of data/code, replace it with a reproducible example **as text** – mozway Jun 20 '23 at 13:40
  • Refrain from showing your dataframe as an image. Your question needs a minimal reproducible example consisting of sample input, expected output, actual output, and only the relevant code necessary to reproduce the problem. See [How to make good reproducible pandas examples](https://stackoverflow.com/questions/20109391/how-to-make-good-reproducible-pandas-examples) for best practices related to Pandas questions. – itprorh66 Jun 20 '23 at 13:44

1 Answers1

1

I made a sample excel file:

enter image description here

With the code:

import pandas as pd
import datetime

df=pd.read_csv('a.csv')
diff=[]
df['date']=pd.to_datetime(df['date'])
for i in range(0,len(df['date'])):

    localdf=df.loc[(df['date']==df['date'][i] -datetime.timedelta(days=5))&(df['id'] == df['id'][i])]
    if localdf.empty:
        diff.append(0)
    else:
        localdf=localdf.reset_index()
        diff.append(df['value'][i]-localdf['value'][0])



df['diff']=diff

gives:

enter image description here

jjk
  • 111
  • 9