首页 > 解决方案 > 在 python pandas 中根据 if-elif-else 条件创建一个新列

问题描述

我想向dDataFrame 添加一列。创建d列时,条件如下:

如果列中以 11 开头a,则获取列中的值b,否则获取列中的值c

a     b    c
11101 100  150
11201 200  250
13301 300  350


a     b    c    d
11101 100  150  100
11201 200  250  200
13301 300  350  350

标签: pythonpandas

解决方案


np.where将列转换a为后使用str

df["a"] = df["a"].astype("str")
df["d"] = np.where(df["a"].str.startswith("11"), df["b"], df["c"])

或者如果您不想更改a原始数据框中的数据类型

df["d"] = np.where(df["a"].astype("str").str.startswith("11"), df["b"], df["c"])

推荐阅读