如何在SAS中将多行重复观测合并为单行且不丢失数据?
合并重复观测行以获取准确年末统计数据
当前错误输出

期望正确输出

解决方案(Python Pandas)
以下代码针对常见的重复观测场景,可实现合并行且不丢失数据:
场景1:同一主体多行数据,需合并为年末单行并聚合数值
假设你的数据包含主体ID、日期及各类数值字段,代码如下:
import pandas as pd # 转换日期列为时间格式 df['日期'] = pd.to_datetime(df['日期']) # 按主体分组,保留年末日期(最大日期),数值字段求和 result_df = df.groupby('主体ID').agg( 主体名称=('主体名称', 'first'), # 非数值字段取组内首个值(确保同主体字段一致) 年末日期=('日期', 'max'), 累计数值1=('数值1', 'sum'), 累计数值2=('数值2', 'sum') ).reset_index() # 输出结果 print(result_df)
场景2:完全重复的行,仅需去重保留最新/最早记录
如果是完全重复的观测行,仅需保留年末对应的记录:
import pandas as pd df['日期'] = pd.to_datetime(df['日期']) # 按主体ID去重,保留最后一条(年末)记录 result_df = df.drop_duplicates(subset=['主体ID'], keep='last')
注意事项
- 请根据实际数据列名调整代码中的字段名称
- 若需其他聚合规则(如均值、计数),可修改
agg方法内的对应参数
内容的提问来源于stack exchange,提问作者Tia
相关产品推荐
相关产品推荐

