【问题标题】:missing in function applied to pandas dataframe column应用于熊猫数据框列的函数中缺少
【发布时间】:2020-04-10 13:37:40
【问题描述】:

我正在尝试将一个函数应用于我的“年龄”和“面积”列,以便获得我在“想要”列中显示的结果。

不幸的是,这个功能给了我错误。我知道 Pandas 中还有其他方法,例如 iloc,但我想了解这种特殊情况。

raw_data = {'age': [-1, np.nan, 10, 300, 20],'area': ['N','S','W',np.nan,np.nan],
    'wanted': ['A',np.nan,'A',np.nan,np.nan]}
df = pd.DataFrame(raw_data, columns = ['age','area','wanted'])
df

def my_funct(df) :

    if df["age"].isnull() :
        return np.nan 
    elif df["area"].notnull():
        return 'A'
    else:
        return np.nan

df["target"] = df.apply(lambda df:my_funct(df) ,axis = 1)

【问题讨论】:

    标签: python pandas function dataframe missing-data


    【解决方案1】:

    在您的示例中,问题是当您通过引用 df['age'] 将一行传递给您的函数时,它会为您提供一个浮点数,该浮点数没有称为 isnull() 的方法。要检查浮点数是否为空,可以使用 pd.isna 函数。 notna() 的情况类似。

    def my_funct(df) :
    
        if pd.isna(df["age"]) :
            return np.nan 
        elif pd.notna(df["area"]):
            return 'A'
        else:
            return np.nan
    
    df["target"] = df.apply(lambda x: my_funct(x) ,axis = 1)
    

    【讨论】:

      猜你喜欢
      • 2017-06-22
      • 2019-02-07
      • 1970-01-01
      • 2018-11-13
      • 1970-01-01
      • 1970-01-01
      • 2021-02-12
      • 2017-08-23
      相关资源
      最近更新 更多