如何将数据框trial列中的所有Pre项依次修改为Pre1、Pre2、Pre3、Pre4
实现方案
以下给出两种常用数据处理工具的实现逻辑,默认按每个参与者(subj_id)独立对自身的Pre条目按出现顺序编号,如果需要全数据集所有Pre统一依次编号,删除对应分组逻辑即可。
R(tidyverse 生态)
library(dplyr) # 替换为你自己的数据集名称 df <- df %>% # 按参与者分组,保证每个被试的Pre编号独立 group_by(subj_id) %>% mutate( trial = ifelse( trial == "Pre", paste0("Pre", cumsum(trial == "Pre")), trial ) ) %>% ungroup()
Python(pandas 生态)
import pandas as pd # 替换为你自己的数据集名称 pre_mask = df["trial"] == "Pre" df["trial"] = df.groupby("subj_id").apply( lambda x: x["trial"].mask(pre_mask, "Pre" + pre_mask.cumsum().astype(str)) ).reset_index(drop=True) # 全局统一编号无需分组的简化写法 # df.loc[pre_mask, "trial"] = "Pre" + pre_mask.cumsum().astype(str)
内容的提问来源于stack exchange,提问作者eegegg
相关产品推荐
相关产品推荐

