阅读权限 255 威望 0 级论坛币 318 个 通用积分 528.4723 学术水平 12 点 热心指数 12 点 信用等级 11 点 经验 2095 点 帖子 47 精华 0 在线时间 429 小时 注册时间 2018-3-7 最后登录 2025-12-8
12 楼
正直者之死
发表于 2022-3-2 16:02:45
R实现
#! r
df1 <- data.frame(id = c(rep(1, 7), rep(2, 7)), t = c(1:7, 1:7), dm = c(rep(1, 7), rep(2, 2), rep(3, 5)), s = c(15, 16, 77, 80, 97, 26, 15, 4, 8, 3, 5, 45, 85, 35))
df1$x <- rep(0, nrow(df1))
for (i in 1:nrow(df1)){
id <- df1$id[i]
dm <- df1$dm[i]
s <- df1$s[i]
to_i <- i + dm
if (to_i <= nrow(df1) && id == df1$id[to_i]){
df1$x[to_i] <- s
}
} 复制代码
py实现
#! py
from pandas import DataFrame as DF
df1 = DF({'id': [1 for i in range(7)] + [2 for i in range(7)], 't': [1 for i in range(14)], 'dm': [1 for i in range(7)] + [2, 2] + [3 for i in range(5)], 's': [15, 16, 77, 80, 97, 26, 15, 4, 8, 3, 5, 45, 85, 35]})
df1['x'] = [0 for i in range(len(df1))]
for i in range(len(df1)):
id = df1['id'][i]
dm = df1['dm'][i]
s = df1['s'][i]
to_i = i + dm
if to_i < len(df1) and id == df1['id'][to_i]:
df1['x'][to_i] = s 复制代码
总评分: 学术水平 + 3
热心指数 + 3
信用等级 + 3
查看全部评分