如何在Python中的if-else条件中创建新列

如何在Python中的if-else条件中创建新列,python,pandas,dataframe,Python,Pandas,Dataframe,这是我的数据帧。我想创建一个名为mpg\u high 该列的条件为: mpg\u high=1ifmpg>average mpg(这是我放置的平均mpgnp.mean(df.mpg)else=0) 我尝试了各种方法,但总是出现语法错误。我该怎么做 提前感谢您可以使用np.where: df['mpg_high'] = np.where(df.mpg > np.mean(df.mpg), 1, 0) 它可以简化为直接二进制比较,并转换为int df = pd.DataFrame({&qu

这是我的数据帧。我想创建一个名为
mpg\u high

该列的条件为:
mpg\u high=1
if
mpg>average mpg
(这是我放置的平均mpg
np.mean(df.mpg)else=0

我尝试了各种方法,但总是出现语法错误。我该怎么做


提前感谢

您可以使用
np.where

df['mpg_high'] = np.where(df.mpg > np.mean(df.mpg), 1, 0)

它可以简化为直接二进制比较,并转换为int

df = pd.DataFrame({"mgp":np.random.randint(15,35, 50)})

df["mgp_high"] = df["mgp"].gt(df["mgp"].mean()).astype(int)