Python 如何对具有多个信号的数据帧进行重采样
我有一个熊猫数据帧,Python 如何对具有多个信号的数据帧进行重采样,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个熊猫数据帧,df_phys,结构如下面的示例所示。我想将所有信号(在本例中为EngineSpeed和WheelBasedVehicleSpeed)重新采样到1秒的频率。我可以通过一个信号一个信号的循环来实现,如下所示: for signal, group in df_phys.groupby("Signal")["Physical Value"]: df_signal = group.to_frame()
df_phys
,结构如下面的示例所示。我想将所有信号(在本例中为EngineSpeed
和WheelBasedVehicleSpeed
)重新采样到1秒的频率。我可以通过一个信号一个信号的循环来实现,如下所示:
for signal, group in df_phys.groupby("Signal")["Physical Value"]:
df_signal = group.to_frame()
df_signal = df_signal.resample("1S").pad().dropna()
但是,我更喜欢对整个数据帧进行重采样(物理值为应重采样的值,而不是在逐个信号循环中进行重采样)。这有可能实现吗
df_phys数据结构(预重采样)
似乎您正在尝试使用
groupby
对数据重新采样。如果这是您的意图,您可以在将时间戳
设置为索引时,简单地对groupby
对象重新采样:
import pandas as pd
df_phys = pd.read_csv("test.txt", sep = ",", parse_dates=["TimeStamp"], index_col="TimeStamp")
df_res = df_phys.groupby("Signal").resample("1S").mean()
print(df_res)
样本输出:
CAN ID ... Physical Value
Signal TimeStamp ...
EngineSpeed 2020-01-13 14:47:09+00:00 217056256.0 ... 1611.907895
2020-01-13 14:47:10+00:00 217056256.0 ... 1511.250000
WheelBasedVehicleSpeed 2020-01-13 14:47:09+00:00 419361024.0 ... 19.160156
2020-01-13 14:47:10+00:00 419361024.0 ... 20.398438
[4 rows x 5 columns]
似乎您正在尝试使用
groupby
对数据重新采样。如果这是您的意图,您可以在将时间戳
设置为索引时,简单地对groupby
对象重新采样:
import pandas as pd
df_phys = pd.read_csv("test.txt", sep = ",", parse_dates=["TimeStamp"], index_col="TimeStamp")
df_res = df_phys.groupby("Signal").resample("1S").mean()
print(df_res)
样本输出:
CAN ID ... Physical Value
Signal TimeStamp ...
EngineSpeed 2020-01-13 14:47:09+00:00 217056256.0 ... 1611.907895
2020-01-13 14:47:10+00:00 217056256.0 ... 1511.250000
WheelBasedVehicleSpeed 2020-01-13 14:47:09+00:00 419361024.0 ... 19.160156
2020-01-13 14:47:10+00:00 419361024.0 ... 20.398438
[4 rows x 5 columns]