这可能很容易,但出于某种原因,我发现很难完成。任何提示将非常感谢。我有一些时间序列数据,每天间隔 5 分钟,ala:
Date Values
2012-12-05 09:30:00 5
2012-12-05 09:35:00 7
2012-12-05 09:40:00 3
2012-12-05 09:45:00 2
2012-12-05 09:50:00 15
2012-12-06 09:30:00 4
2012-12-06 09:35:00 3
2012-12-06 09:40:00 8
2012-12-06 09:45:00 1
我想计算相对于当天第一个值(在这种情况下总是 9:30 值)的差异,即。最终得到这个数据帧:
Date Values
2012-12-05 09:30:00 0
2012-12-05 09:35:00 2
2012-12-05 09:40:00 -2
2012-12-05 09:45:00 -3
2012-12-05 09:50:00 10
2012-12-06 09:30:00 0
2012-12-06 09:35:00 -1
2012-12-06 09:40:00 4
2012-12-06 09:45:00 -3
最佳答案
您需要减去由 Series
和 transform
创建的 groupby
和 Series.dt.date
的 first
:
print (df.Values.groupby(df.Date.dt.day).transform('first'))
0 5
1 5
2 5
3 5
4 5
5 4
6 4
7 4
8 4
Name: Values, dtype: int64
df.Values = df.Values - df.Values.groupby(df.Date.dt.day).transform('first')
print (df)
Date Values
0 2012-12-05 09:30:00 0
1 2012-12-05 09:35:00 2
2 2012-12-05 09:40:00 -2
3 2012-12-05 09:45:00 -3
4 2012-12-05 09:50:00 10
5 2012-12-06 09:30:00 0
6 2012-12-06 09:35:00 -1
7 2012-12-06 09:40:00 4
8 2012-12-06 09:45:00 -3
关于python - Pandas - 计算相对于最早值的每日差异,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40104449/