pandas 数据帧在不均匀的周期/分钟内重新采样
pandas dataframes resample over uneven periods / minutes
已搜索但未找到解决方案 - 如果已经有人询问但我将不胜感激 link
我有一个这样的数据框 (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
...
重要的不是像 07: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')
和
df.resample('300S',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" 可能是一个选项,但它似乎不是很直观或编码很好。
如有任何帮助,我们将不胜感激。
检查这个我使用了滚动,它会滚动给定的频率并进行数学运算,如总和、平均值等。在这里你需要知道开始和结束日期时间值。
代码:
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
在滚动中使用您想要的 window 而不是“15s”以及我 used.Let 我知道这对您有用的 date_range。
已搜索但未找到解决方案 - 如果已经有人询问但我将不胜感激 link
我有一个这样的数据框 (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
...
重要的不是像 07: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')
和
df.resample('300S',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" 可能是一个选项,但它似乎不是很直观或编码很好。
如有任何帮助,我们将不胜感激。
检查这个我使用了滚动,它会滚动给定的频率并进行数学运算,如总和、平均值等。在这里你需要知道开始和结束日期时间值。
代码:
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
在滚动中使用您想要的 window 而不是“15s”以及我 used.Let 我知道这对您有用的 date_range。