在 python 中定义一个函数,使 NaN 值为零,参数数量可变

我正在尝试定义一个函数,该函数可以Nan在输入数据帧的所有列的所有值中填充零。


该函数采用 1 个固定参数(数据帧名称)和可变数量的参数作为数据帧中的列名。


我正在使用下面的代码 -


def makeNa(df,*colnames):

    for col in colnames:

        return df.fillna({col:0},inplace=True)

该函数在我仅传递一个列名时起作用,例如makeNa(df_test,'USA')- 它使列“USA”的所有 Nan 值为零,但在输入多个列名时该函数不起作用,例如makeNa(df_test,'USA','Japan')- > 它不会将 Nan 值归零“日本”栏目


HUWWW
浏览 183回答 2
2回答

慕容708150

你不要让循环结束,你会在第一次迭代时返回。您可以执行以下操作:def makeNa(df, *colnames):    df[colnames] = df[colnames].filna(0)    return df

一只名叫tom的猫

def makeNa(df,*colnames):    for col in colnames:        df.fillna({col:0},inplace=True)    return df您正在返回 for loop ,而不是尝试返回外部。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python