R语言中基于同dataframe另一列值为列赋值的问题问询
R 语言实现
直接使用向量化操作即可完成赋值,无需循环,执行效率更高:
- 满足条件赋值为1、不满足赋值为0的场景:
# 基础R语法,按列位置操作 df[,4] <- ifelse(df[,3] >= 2, 1, 0) # 如果需要给新列指定名称,比如命名为flag df$flag <- ifelse(df[[3]] >= 2, 1, 0)
- 仅给满足条件的行赋值为1,其余行留空的场景:
df[,4] <- NA df[df[,3] >= 2, 4] <- 1
Python Pandas 实现
同样使用向量化操作完成需求:
- 满足条件赋值为1、不满足赋值为0的场景:
import pandas as pd # 按列位置操作 df[3] = (df.iloc[:, 2] >= 2).astype(int) # 给新列指定名称 df['flag'] = (df.iloc[:, 2] >= 2).astype(int)
- 仅给满足条件的行赋值为1,其余行留空的场景:
import numpy as np df['flag'] = np.where(df.iloc[:,2] >=2, 1, pd.NA)
内容的提问来源于stack exchange,提问作者Debutant
相关产品推荐
相关产品推荐

