在python上使用几个if条件在数据帧上创建列

在python上使用几个if条件在数据帧上创建列,python,dataframe,if-statement,conditional-statements,Python,Dataframe,If Statement,Conditional Statements,我有一个df,我想根据名为“地板面积”的其他df列的几个条件添加一列“太阳能电池板面积”。 条件是: 建筑面积

我有一个df,我想根据名为“地板面积”的其他df列的几个条件添加一列“太阳能电池板面积”。 条件是:

  • 建筑面积<100返回4

  • 100对于Python中的单行程序条件,
    elif
    不起作用

    有两种方法可以创建新列

  • 如果有的话,用一个衬里梯子。(当您只有一定数量的条件时,这是可以的)
    df[“太阳能电池板面积”]=[
    4如果x<100
    如果x<200,则为6
    如果x<300,则为8
    其他12
    对于df中的x[“楼层面积”]
    ]
    
  • 创建函数并使用
    def太阳能电池板面积(地板面积):
    如果楼层面积<100:
    返回4
    elif楼层面积<200:
    返回6
    楼层面积
    
    import pandas as pd data = {'id': ['B100'], 'floor_area': [20]}
    df =pd.DataFrame(data)
    
    df['solar_panel_area']= [4 if x<100 else 12 for x in(df['floor_area'])]
    df
    id  floor_area  solar_panel_area
    0   B100    20  4
    
    def fn(x):
        if x < 100:
            return 4
        if 100 < x < 200:
            return 6
        if 200 < x < 300:
            return 8
        return 12
    
    
    df["solar_panel_area"] = df["floor_area"].apply(fn)
    
    print(df)