如何基于DataFrame中2004年数据生成2002-2003年湖泊土地利用行
解决方案:补全湖泊土地利用缺失年份数据
以下是基于Pandas的实现步骤,直接复用2004年数据生成2002、2003年的记录:
核心思路
提取2004年的所有湖泊数据,分别复制并修改年份为2002、2003,再与原数据合并,得到每个湖泊2002-2004年的完整数据集。
代码实现
1. 导入依赖并准备数据(已有数据可跳过示例数据部分)
import pandas as pd # 示例原始数据(替换为你的实际数据) data = { 'Lake': ['LakeA', 'LakeB', 'LakeC'], 'year': [2004, 2004, 2004], 'urban': [0.12, 0.08, 0.15], 'agriculture': [0.25, 0.32, 0.21], 'wetlands': [0.18, 0.15, 0.20], 'forest': [0.35, 0.30, 0.33], 'shrub': [0.10, 0.15, 0.11] } df = pd.DataFrame(data)
2. 提取2004年数据并生成缺失年份记录
# 提取2004年数据,用copy()避免修改原数据 df_2004 = df[df['year'] == 2004].copy() # 生成2002年数据:复制2004年数据并修改年份 df_2002 = df_2004.copy() df_2002['year'] = 2002 # 生成2003年数据:同理复制并修改年份 df_2003 = df_2004.copy() df_2003['year'] = 2003
3. 合并数据并整理格式
# 合并三年数据 df_complete = pd.concat([df_2002, df_2003, df], ignore_index=True) # 按湖泊名称和年份排序(可选,让数据更规整) df_complete = df_complete.sort_values(by=['Lake', 'year']).reset_index(drop=True)
最终效果
处理后的df_complete中每个湖泊都会有2002、2003、2004三年的记录,且各土地利用字段值与2004年完全一致。
内容的提问来源于stack exchange,提问作者Mayra V
相关产品推荐
相关产品推荐

