You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为树木时序测量数据集添加生存及新增二值标签?

树木生存状态与新增树木标签实现方法

一、生成tree_survival存活标签

需求:同时出现在t1和t2的树木标记为1,仅在t1出现的标记为0。

用Pandas实现的代码如下:

import pandas as pd

# 构造示例数据(实际可替换为读取你的数据集)
df = pd.DataFrame({
    'State': [1,1,1,1,1],
    'County': [9,9,9,9,9],
    'Plot': [1,1,1,1,1],
    'Tree': [1,2,3,1,2],
    'Meas_yr': ['t1','t1','t1','t2','t2']
})

# 按树木唯一标识分组,判断是否存在t2记录
survival_map = df.groupby(['State', 'County', 'Plot', 'Tree'])['Meas_yr'].apply(
    lambda x: 1 if 't2' in x.values else 0
)

# 将存活标签合并回原数据集
df['tree_survival'] = df.set_index(['State', 'County', 'Plot', 'Tree']).index.map(survival_map)

运行后就能得到目标格式:Tree=3因为只有t1记录,tree_survival会被标记为0,其余存在t2记录的树木标记为1。

二、生成新增树木标签(仅t2出现标记为1)

需求:仅在t2出现的新增树木标记为1,其余(同时存在t1/t2、仅t1存在)标记为0。

实现代码:

# 按树木唯一标识分组,判断是否仅存在t2记录
new_tree_map = df.groupby(['State', 'County', 'Plot', 'Tree'])['Meas_yr'].apply(
    lambda x: 1 if (x == 't2').all() else 0
)

# 合并新增标签到原数据集
df['new_tree'] = df.set_index(['State', 'County', 'Plot', 'Tree']).index.map(new_tree_map)

比如如果数据里有一行State=1, County=9, Plot=1, Tree=4, Meas_yr=t2,这棵树的new_tree标签会是1,其他树木则为0。

内容的提问来源于stack exchange,提问作者sakar299

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 10:35:35