python - 如何使用Python中的现有列以其他列为条件创建新列

标签 python r python-3.x pandas dataframe

我在python中有一个dataframe,看起来像这样

dt = pd.DataFrame({"language1": ["english", "english123", "ingles", "ingles123", "14.0", "13", "french"],
                   "language2": ["englesh", "english123", "ingles", "ingles123", "14", "13", "french"],
                   "language3": ["englesh", "engl", "ingles", "ingles123", "14", "13", "spanish"]})

我想做的是复制这个R代码,但是在python

dt[,language4:=ifelse(!language1%in%c("french"),paste0(language2,"_win"),paste0(language3,"_lose"))]

我试过了,但不起作用

dt['language4'] = dt.apply(lambda x: ~x['language1'].isin(['french']), x['language2'] + "_win", x['language3']+"_lose")

所以我想出了这个

dt.loc[~dt['language1'].isin(["french"]),'language4'] = surv_dt_sd['language2'] + \
    "_win"

但我不知道如何在一行中实现else

最佳答案

numpy.where 将在这里工作:

dt['language4'] = np.where("french" not in dt['language1'], dt['language2'] + '_win', dt['language2'] + '_lose')

关于python - 如何使用Python中的现有列以其他列为条件创建新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46220892/

相关文章:

python - 根据数据框中的排序值旋转多行

python - 类型错误 : can't use a string pattern on a bytes-like object, 接口(interface)

r - 修改 R markdown 中 fancyhdr 页脚的位置

python - 将 rbf 与 scipy 一起使用时出现内存错误

python-3.x - 连接GPT-3 open AI时如何解决API连接错误和SSL认证错误?

python - 使用 matplotlib 创建一个饼图

python - 如何将变量从 View 传递到 Django 中的 base.html?

python - 在 MSER 检测到的区域上执行凸包时出错

r - 如何在 R 中创建精确匹配的二进制矩阵

r - 注释会减慢R吗?