Pandas dataframe按日期在同一列中的差异

hlswsv35  于 2023-06-28  发布在  其他
关注(0)|答案(1)|浏览(111)

我想减去5天前的数据。
例如:ID:1,日期:2023年6月10日,数据:22. Id:1,Date:2023年6月5日,数据:15
结果:Id:1,日期:2023年6月10日,数据:22,差异:7
请看图片。

dsekswqp

dsekswqp1#

我创建了一个Excel文件:

使用代码:

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

给出:

相关问题