Python 计算平均值时保留原始列
我的数据集看起来像这样。这是一个基于分钟的数据集Python 计算平均值时保留原始列,python,python-3.x,pandas,dataframe,Python,Python 3.x,Pandas,Dataframe,我的数据集看起来像这样。这是一个基于分钟的数据集 time, Open, High 2017-01-01 00:00:00, 1.2432, 1.1234 2017-01-01 00:01:00, 1.2432, 1.1234 2017-01-01 00:02:00, 1.2332, 1.1234 2017-01-01 00:03:00, 1.2132, 1.1234 ...., ...., .... 2017-12-31 23:59:00, 1.2132, 1.1234 我做了以下工作来计算
time, Open, High
2017-01-01 00:00:00, 1.2432, 1.1234
2017-01-01 00:01:00, 1.2432, 1.1234
2017-01-01 00:02:00, 1.2332, 1.1234
2017-01-01 00:03:00, 1.2132, 1.1234
...., ...., ....
2017-12-31 23:59:00, 1.2132, 1.1234
我做了以下工作来计算上述分钟数据集的小时平均值
然后我加载df_平均值,得到小时值:
但我也想要的是原始的开放价值和高价值
我需要两件事的帮助:
一旦计算出平均值,我希望它被标记为开放平均值和高平均值
由于小时平均值以小时为单位给出时间,因此我希望加载当时的原始打开值和高值。
在这里:
原始数据集的特定时间戳的开放值和高值是相同的,但开放平均值和高平均值是相同的
计算该时间戳的每小时平均值
新的df应如下所示:
一旦我们在df中获得正确的数据集,我想过滤新的df以只加载特定于时间的数据
例如:从每天晚上10点到下午4点加载时间范围的数据。当前它加载所有小时。使用添加后缀重命名
df['time'] = pd.to_datetime(df['time'])
df_mean = df.set_index('time').resample('H').mean()
df_mean = df_mean.add_suffix('_Mean')
并与how='inner'合并以提取小时数据:
df.merge(df_mean, left_on='time', right_index=True, how='inner')
随机数据输出头
time Open High Open_Mean High_Mean
0 2017-01-01 00:00:00 1.219690 1.693049 1.519751 2.042550
60 2017-01-01 01:00:00 1.688490 1.404521 1.526833 2.115046
120 2017-01-01 02:00:00 1.015285 2.653544 1.533529 1.797564
180 2017-01-01 03:00:00 1.357672 2.299571 1.506012 2.043484
240 2017-01-01 04:00:00 1.293786 2.312414 1.489759 2.131644
300 2017-01-01 05:00:00 1.040048 2.791968 1.438353 1.816585
360 2017-01-01 06:00:00 1.225080 1.505802 1.473208 2.193237
420 2017-01-01 07:00:00 1.145402 3.217261 1.481710 1.914683
太神了非常感谢。最后一个问题:如何只过滤特定的时间?比如每天晚上10点到4点?我只想看看这些数据。df[df['time'].dt.hour.between10,15]给你上午10点到下午4点之前的时间。那是晚上10点到凌晨4点?df[~df['time'].dt.hour.between4,22]?它的意思是不,否定了下面的系列。我认为它更适合于一个新问题,因为在评论中回答它并不是那么简单。
df['time'] = pd.to_datetime(df['time'])
df_mean = df.set_index('time').resample('H').mean()
df_mean = df_mean.add_suffix('_Mean')
df.merge(df_mean, left_on='time', right_index=True, how='inner')
time Open High Open_Mean High_Mean
0 2017-01-01 00:00:00 1.219690 1.693049 1.519751 2.042550
60 2017-01-01 01:00:00 1.688490 1.404521 1.526833 2.115046
120 2017-01-01 02:00:00 1.015285 2.653544 1.533529 1.797564
180 2017-01-01 03:00:00 1.357672 2.299571 1.506012 2.043484
240 2017-01-01 04:00:00 1.293786 2.312414 1.489759 2.131644
300 2017-01-01 05:00:00 1.040048 2.791968 1.438353 1.816585
360 2017-01-01 06:00:00 1.225080 1.505802 1.473208 2.193237
420 2017-01-01 07:00:00 1.145402 3.217261 1.481710 1.914683