python 传递布尔运算符并使用泰坦尼克号数据集预测生存平均值的函数
python function to pass the boolean operators and predict the survival mean with titanic dataset
我正在尝试预测测试中乘客的生存机会 set.i 在不使用该函数的情况下成功预测了值。
数据集如下
f = pd.read_csv('https://raw.githubusercontent.com/Explore-AI/Public-Data/master/Data/regression_sprint/titanic_train_raw.csv')
df_clean = pd.read_csv('https://raw.githubusercontent.com/Explore-AI/Public-Data/master/Data/regression_sprint/titanic_train_clean_raw.csv')
如果通过函数传递值,则预期结果如下
survival_likelihood(df_clean,"Pclass","==","3") == 0.24
survival_likelihood(df_clean,"Age","<","15") == 0.58
我无需按照下图编写函数即可获得输出
我已经编写了以下函数,如果通过函数传递值,我将无法获得所需的结果
def survival_likelihood(df_clean, column_name, boolean_operator, value):
column_name = df_clean.columns
value = df[column_name]
boolean_operator = [">" or "<" or "=="]
if column_name in df_clean.columns and df_clean[column_name].dtypes != object :
s = round(df_clean[df[column_name][boolean_operator][value]].Survived.mean(),
return s
已尝试过 eval() 方法,但也无济于事。期待同样的 pointer/fix。提前致谢。
此致,
普拉卡什
下面的一个可以达到我想要的效果
def survival_likelihood(df_clean,column_name, boolean_operator, value):
if boolean_operator == '<':
s = df_clean[df_clean[column_name] < eval(value)] ['Survived'].mean()
#print(boolean_operator)
if boolean_operator == '>':
s = df_clean[df_clean[column_name] < eval(value)] ['Survived'].mean()
#print(boolean_operator)
if boolean_operator == '==':
s = df_clean[df_clean[column_name] == eval(value)] ['Survived'].mean()
return s
我正在尝试预测测试中乘客的生存机会 set.i 在不使用该函数的情况下成功预测了值。
数据集如下
f = pd.read_csv('https://raw.githubusercontent.com/Explore-AI/Public-Data/master/Data/regression_sprint/titanic_train_raw.csv')
df_clean = pd.read_csv('https://raw.githubusercontent.com/Explore-AI/Public-Data/master/Data/regression_sprint/titanic_train_clean_raw.csv')
如果通过函数传递值,则预期结果如下
survival_likelihood(df_clean,"Pclass","==","3") == 0.24
survival_likelihood(df_clean,"Age","<","15") == 0.58
我无需按照下图编写函数即可获得输出
我已经编写了以下函数,如果通过函数传递值,我将无法获得所需的结果
def survival_likelihood(df_clean, column_name, boolean_operator, value):
column_name = df_clean.columns
value = df[column_name]
boolean_operator = [">" or "<" or "=="]
if column_name in df_clean.columns and df_clean[column_name].dtypes != object :
s = round(df_clean[df[column_name][boolean_operator][value]].Survived.mean(),
return s
已尝试过 eval() 方法,但也无济于事。期待同样的 pointer/fix。提前致谢。
此致, 普拉卡什
下面的一个可以达到我想要的效果
def survival_likelihood(df_clean,column_name, boolean_operator, value):
if boolean_operator == '<':
s = df_clean[df_clean[column_name] < eval(value)] ['Survived'].mean()
#print(boolean_operator)
if boolean_operator == '>':
s = df_clean[df_clean[column_name] < eval(value)] ['Survived'].mean()
#print(boolean_operator)
if boolean_operator == '==':
s = df_clean[df_clean[column_name] == eval(value)] ['Survived'].mean()
return s