提问人:mw00847 提问时间:11/16/2023 更新时间:11/16/2023 访问量:41
在函数中使用参数,但事先未声明该参数
using a parameter in a function without previously declaring it
问:
欣赏这是一个简单的问题,
使用此处的教程 https://introml.analyticsdojo.com/notebooks/nb-04-10-pca.html
使用下面的代码。
当 df 和 dv 之前未声明时,它们如何用作函数中的参数?
感谢您的帮助
import os
import pandas as pd
train = pd.read_csv('https://raw.githubusercontent.com/rpi-techfundamentals/spring2019-materials/master/input/train.csv')
test = pd.read_csv('https://raw.githubusercontent.com/rpi-techfundamentals/spring2019-materials/master/input/test.csv')
print(train.columns, test.columns)
from sklearn.impute import SimpleImputer
import numpy as np
cat_features = ['Pclass', 'Sex', 'Embarked']
num_features = [ 'Age', 'SibSp', 'Parch', 'Fare' ]
def preprocess(df, num_features, cat_features, dv):
features = cat_features + num_features
if dv in df.columns:
y = df[dv]
else:
y=None
#Address missing variables
print("Total missing values before processing:", df[features].isna().sum().sum() )
imp_mode = SimpleImputer(missing_values=np.nan, strategy='most_frequent')
df[cat_features]=imp_mode.fit_transform(df[cat_features] )
imp_mean = SimpleImputer(missing_values=np.nan, strategy='mean')
df[num_features]=imp_mean.fit_transform(df[num_features])
print("Total missing values after processing:", df[features].isna().sum().sum() )
X = pd.get_dummies(df[features], columns=cat_features, drop_first=True)
return y,X
y, X = preprocess(train, num_features, cat_features, 'Survived')
test_y, test_X = preprocess(test, num_features, cat_features, 'Survived')
答:
0赞
Raysuoo
11/16/2023
#1
在 Python 中,您无需声明变量即可使用它们。解释器在运行程序时分配变量的类型,最佳做法仍然是声明它们,以便您可以确定该变量中有您想要的类型。
在本例中,“df”是 train,它是使用的 csv 文件,“dv”是单词“Survived”。for 循环在所有 csv 文件列中搜索单词 Survived 如果存在对应关系,则将其添加到该索引中的 csv 文件中。
你可以在这里看到它如何更好地工作,在我看来,这可以帮助你消除你的疑虑。
评论
y, X = preprocess(train, num_features, cat_features, 'Survived')