import pandas as pd def csv_interpolate_by_frame(input, output): df = pd.read_csv(input) # 读取CSV文件 df['simFrame'] = pd.to_numeric(df['simFrame'], errors='coerce') # 转换simFrame列为数字类型 df = df.sort_values(by='simFrame') # 根据simFrame列进行排序 full_simFrame_series = pd.Series(range(df['simFrame'].min(), df['simFrame'].max() + 1)) # 构建一个包含连续simFrame的完整序列 df = df.merge(full_simFrame_series.rename('simFrame'), how='right') # 使用merge方法将原始数据与完整序列合并,以填充缺失的simFrame行 df = df.interpolate(method='linear') # 对其他列进行线性插值 df['simFrame'] = df['simFrame'].astype(int) # 恢复simFrame列的数据类型为整数 df.to_csv(output, index=False) # 保存处理后的数据到新的CSV文件 if __name__ == '__main__': input_file = 'input.csv' output_file = 'output.csv' csv_interpolate_by_frame(input_file, output_file)