Python 熊猫数据帧在不均匀的周期/分钟内重新采样

Python 熊猫数据帧在不均匀的周期/分钟内重新采样,python,pandas,timestamp,average,resampling,Python,Pandas,Timestamp,Average,Resampling,搜索它,但没有找到解决方案-如果已经有一个sry的要求,但我会感谢一个链接 我有这样一个数据帧(df): timestamp value 2016-03-11 07:37:40 24.6018 2016-03-11 07:37:45 24.6075 2016-03-11 07:37:50 24.599 2016-03-11 07:37:55 24.6047 2016-03-11 07:38:00 24.5905 2016-03-11 07:38:05 24.551 ... 重

搜索它,但没有找到解决方案-如果已经有一个sry的要求,但我会感谢一个链接

我有这样一个数据帧(df):

timestamp          value
2016-03-11 07:37:40 24.6018
2016-03-11 07:37:45 24.6075
2016-03-11 07:37:50 24.599
2016-03-11 07:37:55 24.6047
2016-03-11 07:38:00 24.5905
2016-03-11 07:38:05 24.551
...
重要提示:开始时间不是7:40:00,而是07:37:40(可以是任何时间),我想对其进行重新采样-计算5分钟内的平均值,例如,标有所用线路的最后时间戳。原始数据的第一个时间戳2016-03-11 07:37:40的预期结果:

2016-03-11 07:42:40 24.608
2016-03-11 07:47:40 24.605
2016-03-11 07:52:40 24.59
...
我试着用

df.resample('5T',how='mean',label='right')

同样的结果是:

2016-03-11 07:40:00 24.618
2016-03-11 07:45:00 24.675
2016-03-11 07:50:00 24.599
...
它在整分钟内计算。我找不到合适的方法来纠正这个问题。看到“base”可能是一个选项,但它似乎不是很直观或很好的编码


任何帮助都将不胜感激

检查这个,我使用了滚动,它将滚动给定的频率,并进行数学运算,如sum、mean等。在这里,您需要知道开始和结束日期时间值

代码:

df.timestamp=pd.to_datetime(df.timestamp)
df.set_index('timestamp',inplace=True)
df = df.rolling('15s').mean()
mask = pd.date_range('2016-03-11 07:37:40','2016-03-11 07:38:05',freq='10S')
df = df.loc[mask]
df

                        value
2016-03-11 07:37:40 24.601800
2016-03-11 07:37:50 24.602767
2016-03-11 07:38:00 24.598067

使用您想要的窗口,而不是我使用的滚动和日期范围中的“15”。让我知道这对您有用。

非常感谢。它对我有用。我会回答这个问题,但同时我找到了一种方法来计算
base
,如果有人需要,可以对
重新采样:
base=df.iloc[0].name.minute%5+df.iloc[0].name.second
@neo欢迎您。如果解决方案对您有效,请接受它。
df.timestamp=pd.to_datetime(df.timestamp)
df.set_index('timestamp',inplace=True)
df = df.rolling('15s').mean()
mask = pd.date_range('2016-03-11 07:37:40','2016-03-11 07:38:05',freq='10S')
df = df.loc[mask]
df

                        value
2016-03-11 07:37:40 24.601800
2016-03-11 07:37:50 24.602767
2016-03-11 07:38:00 24.598067