我需要将两个数据集合并为一个数据集。
我有两个生成的数据帧-熊猫,一个大约每秒钟采样一次数据,另一个大约每120秒采样一次数据。
我如何合并这两个,由应用程序的间隔控制。 120秒的生成任务。
目前,我已经从快速生成的1秒中取出了第120个样本集。数据集。这些不准确,为1秒,并且包含一点抖动。
Time Torque [Nm] Speed [1/s]
54240 2017-04-05 21:21:21 938.00 3000.0
54252 2017-04-05 21:23:23 936.25 3000.0
54264 2017-04-05 21:25:24 948.50 3000.0
54276 2017-04-05 21:27:26 948.50 3000.0
54288 2017-04-05 21:29:28 936.25 3000.0
54300 2017-04-05 21:31:29 952.00 3000.0
54312 2017-04-05 21:33:31 945.00 3000.0
54324 2017-04-05 21:35:33 927.50 3000.0
同样,我的数据集具有120秒的间隔
Time FFT ISO FFTe: FO
0 2017-04-05 21:26:08 20.5754 16.377570
1 2017-04-05 21:28:08 106.1549 32.836566
2 2017-04-05 21:30:07 16.2735 19.308864
3 2017-04-05 21:32:08 24.2232 42.766070
4 2017-04-05 21:34:08 35.5723 64.152879
5 2017-04-05 21:36:08 3.7364 29.323316
6 2017-04-05 21:38:08 21.8207 17.796711
7 2017-04-05 21:40:08 9.9334 49.642802
时间戳不同,可能包含一些抖动。
我想合并数据列,因此将在相同的120秒间隔内出现的数据(扭矩[Nm],速度[1 / s],FFT ISO,FFTe:FO)合并。
也许我应该定义一个120秒的“参考间隔”,并将数据放入这些大小相等的插槽中。
假设可以使用
pd.concat
或pd.append
完成,但是我还不太清楚任何帮助表示赞赏
最佳答案
使用resample/mean
方法,通过获取每个120秒周期中所有值的平均值,将索引归一化为频率都为120S
。
resampled1 = df1.resample('120S').mean()
resampled2 = df2.resample('120S').mean()
result = resampled1.join(resampled2)
例如,
import numpy as np
import pandas as pd
np.random.seed(2017)
def make_index(N, freq):
index = pd.date_range('2000-1-1', periods=N, freq=freq).view('i8')
index = (np.sort(index + np.random.uniform(0, np.diff(index).mean(), size=N).astype(int))
.view('datetime64[ns]'))
return index
N = 100
sec_index = make_index(120*N, 'S')
sec120_index = make_index(N, '120S')
df1 = pd.DataFrame({'Torque': np.random.random(120*N),
'Speed': np.random.random(120*N),
'Time': sec_index})
df2 = pd.DataFrame({'FFT ISO': np.random.random(N),
'FFTe: FO': np.random.random(N),
'Time': sec120_index})
df1 = df1.set_index('Time')
df2 = df2.set_index('Time')
resampled1 = df1.resample('120S').mean()
resampled2 = df2.resample('120S').mean()
result = resampled1.join(resampled2)
print(result.head())
产量
Speed Torque FFT ISO FFTe: FO
Time
2000-01-01 00:00:00 0.482262 0.470523 0.435150 0.289036
2000-01-01 00:02:00 0.501221 0.476776 0.005576 0.284386
2000-01-01 00:04:00 0.491305 0.459710 0.249217 0.253787
2000-01-01 00:06:00 0.486900 0.498921 0.391429 0.854698
2000-01-01 00:08:00 0.485611 0.517818 0.071058 0.552727
关于python - 如何合并带有不同时间戳的两只 Pandas ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45350274/