编程语言
首页 > 编程语言> > python-熊猫-计算相对于最早值的每日差异

python-熊猫-计算相对于最早值的每日差异

作者:互联网

这可能很容易,但是由于某种原因,我发现很难完成.任何提示将非常感谢.我有一些时间序列数据,包括每天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值)的差异,即.最终得到这个DataFrame:

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

解决方法:

您需要按创建的系列减去transform,其中groupbySeries.dt.datefirst分别为:

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

标签:pandas,resampling,python
来源: https://codeday.me/bug/20191118/2025222.html