此处,import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.model_selection import StratifiedShuffleSplit
from sklearn.preprocessing import OrdinalEncoder
df = pd.read_csv("mushrooms.csv",index_col=False,header=None)
def n(target):
if target == 'p':
return 1
elif target == 'e':
return 0
df[0] = df[0].apply(n)
#manually encoding the targets
targets = df[0]
inputs = df[df.columns[1:]]
def test_train_split(mydf, inputs, tratio, target):
splitter = StratifiedShuffleSplit(n_splits = 1, test_size = tratio, random_state = 42)
train_index, test_index = next(splitter.split(inputs, target))
strat_train = mydf.iloc[train_index]
strat_test = mydf.iloc[test_index]
return strat_train, strat_test
def print_test_train_dfs(train_df, test_df, target_column = 'None'):
print("\nTraining data:")
train_df.info()
if target_column != 'None':
print(train_df[target_column].value_counts())
print('\nTest data:')
test_df.info()
if target_column != 'None':
print(test_df[target_column].value_counts())
traindf, testdf = test_train_split(df, inputs, 0.2, targets)
enc = OrdinalEncoder()
enc.fit(traindf)
df = enc.transform(testdf)
for i in range(len(df)):
for j in range(len(df[1])):
df[i][j].round(0)
df = pd.DataFrame.from_records(df)
print(df)
函数中的plcs
变量需要在外部使用。我正在尝试直接调用try catch
函数并将其存储在async
函数中,但这两种方法都不起作用,第一种方法显示未定义,而下一个方法返回空Promise
sync
答案 0 :(得分:0)
所有async
函数都返回一个承诺。因此,在调用await
函数时必须使用.then()
或async
才能获得解析值。
async
函数在函数内部非常有用,因此您可以在函数内部使用await
,但对于外部调用者,仍然只是返回了一个承诺。 async
的功能是不将异步结果转换为同步结果。 async
函数的调用方仍然必须处理异步响应(按承诺)。
例如:
async function fn() {
const dbResult = await ftchplc();
return dbResult.rows._array;
};
fn().then(sample => {
console.log(sample);
}).catch(err => {
console.log(err);
});
这假设ftchplc()
返回的诺言可解决您的预期dbResult
。