Python中定义一个函数,用可变数量的参数将NaN值设为零

2024-10-06 12:19:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图定义一个函数,它可以在输入数据帧的所有列的Nan值中填充零。你知道吗

该函数对数据框中的列名采用1个固定参数(dataframe name)和可变数量的参数。你知道吗

我正在使用下面的代码-

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')-->;它不会将列“Japan”中的Nan值归零


Tags: 数据函数nametestdataframedf参数数量
2条回答
def makeNa(df,*colnames):
    for col in colnames:
        df.fillna({col:0},inplace=True)
    return df

你正在返回for循环,而不是尝试返回外部。你知道吗

如果不让循环结束,则在第一次迭代时返回。你可以这样做:

def makeNa(df, *colnames):
    df[colnames] = df[colnames].filna(0)
    return df

相关问题 更多 >