寻求统一不同采集频率多通道深度关联数据的简易方法
统一校准多通道深度数据的简便方法
核心思路:以depth1为基准深度轴对齐所有数据
不用依赖Scipy的复杂插值逻辑,直接用Pandas原生功能就能快速实现,步骤如下:
1. 拆分各组独立的深度-数据对
先把原始DataFrame拆成4组单独的(深度索引+数据)结构,方便后续处理:
# 拆分各组数据,用深度列做索引 data1 = df.set_index('depth1')['data1'] data2 = df.set_index('depth2')['data2'] data3 = df.set_index('depth3')['data3'] data4 = df.set_index('depth4')['data4']
2. 以depth1的深度值为基准,对齐其他数据
用reindex把其他数据的索引替换成depth1的深度序列,再通过插值补全缺口。默认用线性插值,适合连续观测数据:
# 对齐并插值,统一到depth1的深度轴上 aligned_data2 = data2.reindex(data1.index).interpolate(method='linear') aligned_data3 = data3.reindex(data1.index).interpolate(method='linear') aligned_data4 = data4.reindex(data1.index).interpolate(method='linear')
如果你的数据是离散型、不需要精确插值,也可以用向前/向后填充替代:
# 向前填充示例(取最近的前一个有效值) aligned_data2 = data2.reindex(data1.index).ffill()
3. 合并为校准后的DataFrame
把所有对齐后的数据整合到一个新表中:
calibrated_df = pd.DataFrame({ 'depth': data1.index, 'data1': data1.values, 'data2': aligned_data2.values, 'data3': aligned_data3.values, 'data4': aligned_data4.values })
内容的提问来源于stack exchange,提问作者roudan
相关产品推荐
相关产品推荐

