将lambda函数转换为正则函数



我想了解如何将lambda函数转换为正常函数。我有这个lambda函数它应该用模式

填充每列的空值
def fill_nn(data):
df= data.apply(lambda column: column.fillna(column.mode()[0]))
return df

我试过了:

def fill_nn(df):
for column in df:
if df[column].isnull().any():
return df[column].fillna(df[column].mode()[0])

你好👋希望你一切都好!

如果我正确理解了你的问题,那么最好的方式将类似于这样:

import pandas as pd

def fill_missing_values(series: pd.Series) -> pd.Series:
"""Fill missing values in series/column."""
value_to_use = series.mode()[0]
return series.fillna(value=value_to_use)

df = pd.DataFrame(
{
"A": [1, 2, 3, 4, 5],
"B": [None, 2, 3, 4, None],
"C": [None, None, 3, 4, None],
}
)
df = df.apply(fill_missing_values)  # type: ignore
print(df)
#    A    B    C
# 0  1  2.0  3.0
# 1  2  2.0  3.0
# 2  3  3.0  3.0
# 3  4  4.0  4.0
# 4  5  2.0  3.0

但就个人而言,我仍然会使用lambda,因为它需要更少的代码,更容易处理(特别是对于这样一个小任务)。

最新更新