如何为DataFrame按样本分组创建当日与前日高度的差值列
实现方案
你可以用pandas库快速实现这个需求,核心逻辑是按样本分组后计算相邻行的高度差,完整代码如下:
import pandas as pd # 读取数据集,可替换为你本地的csv文件路径 df = pd.read_csv("sample_data.csv") # 转换日期格式并按样本+日期升序排序,保证时间顺序正确 df["Date"] = pd.to_datetime(df["Date"], format="%m/%d/%Y") df = df.sort_values(by=["Sample", "Date"], ignore_index=True) # 按样本分组,计算当日高度 - 前一日高度的差值 df["height_diff"] = df.groupby("Sample")["Height"].diff(periods=1) # 筛选出有差值的记录(过滤掉首日无前置数据的空值行) result_df = df.dropna(subset=["height_diff"])[["Sample", "height_diff"]] # 按你需要的格式输出结果 for _, row in result_df.iterrows(): print(f"{row['Sample']} = {row['height_diff']}")
说明
groupby('Sample')确保差值只会在同一个样本的不同日期记录之间计算,不会出现跨样本计算的问题- 代码兼容多于两天的数据集,会自动计算每一日相对前一日的高度差
- 你给出的预期结果里的
08是输入笔误,实际输出为O8 = 0.0
内容的提问来源于stack exchange,提问作者Leo Torres
相关产品推荐
相关产品推荐

