我有一个文件df,我希望每隔7天取一次增量,并反映该特定期间的时间戳。
df:
Date Value
10/15/2020 75
10/14/2020 70
10/13/2020 65
10/12/2020 60
10/11/2020 55
10/10/2020 50
10/9/2020 45
10/8/2020 40
10/7/2020 35
10/6/2020 30
10/5/2020 25
10/4/2020 20
10/3/2020 15
10/2/2020 10
10/1/2020 5
期望输出:
2020年10/15/2020至10/9/2020为7天,三角洲为: 75 - 45 = 30 10/9/2020
Date Value
10/9/2020 30
10/2/2020 30
这就是我要做的:
df= df['Delta']=df.iloc[:,6].sub(df.iloc[:,0]),Date=pd.Series
(pd.date_range(pd.Timestamp('2020-10-
15'),
periods=7, freq='7d')))[['Delta','Date']]
我也在想,我也许能做到这一点:
编辑i更新了callDate
for row in df.itertuples():
Date = datetime.strptime(row.Date, "%m/%d/%y %I:%M %p")
previousRecord = df['Date'].shift(-6).strptime(row.Date, "%m/%d/%y %I:%M
%p")
Delta = Date - previousRecord
如有任何建议,将不胜感激。
发布于 2020-10-21 18:38:13
不要对数据进行迭代。您可以使用merge
(df.merge(df.assign(Date=df['Date'] - pd.to_timedelta('6D')),
on='Date')
.assign(Value = lambda x: x['Value_y']-x['Value_x'])
[['Date','Value']]
)
输出:
Date Value
0 2020-10-09 30
1 2020-10-08 30
2 2020-10-07 30
3 2020-10-06 30
4 2020-10-05 30
5 2020-10-04 30
6 2020-10-03 30
7 2020-10-02 30
8 2020-10-01 30
发布于 2020-10-21 18:29:58
你写的最后一段代码是我会怎么做的。唯一的问题是在Delta = Date - previousRecord
中,这里没有什么叫做Date
。相反,您应该访问与callDate
关联的值。
https://stackoverflow.com/questions/64469468
复制相似问题