我在Python中为Azure ML编写了一个算法,但无法运行。我使用Visual Studio(PTVS)编写了这个代码。我使用以下代码来模拟Azure ML中的相同条件:
def azureMLstartCondition(): fileLocation = 'C:/Users/nissen/Desktop/SLR-Algrorithmus/Belgian376.csv' dataset = pd.DataFrame(pd.read_csv(fileLocation, error_bad_lines = False)) azureml_main(dataset)
我用来将给定的pandas数据框转换为列表的代码是:
def formData(dataset): listOfTransaction = dataset.values.tolist() cleanedList = [] for transaction in listOfTransaction: itemList = [] for item in transaction: if False == pd.isnull(item): itemList.append(item) cleanedList.append(itemList) return cleanedList
我用来将其转换回pandas数据框的代码是:
def formToPandas(result): lastStep = pd.DataFrame(result) return lastStep
在Visual Studio中一切正常,但在Azure ML中不行。关于相同问题的另一种描述,可以在这里找到:Azure ML论坛。
我希望实现的完整代码中包含最多4维或更多的列表。(列表的列表的列表…)但最后一个是列表的列表,应该没有问题转换为pandas。
希望你能帮助我,非常感谢,祝好,peni4142
PS:请原谅我的英语不好 🙂
编辑:PPS:我在Python代码脚本模块中的完整代码如下:
import pandas as pddef formToPandas(result): lastStep = pd.DataFrame(result) return lastStepdef formData(dataset): listOfTransaction = dataset.values.tolist() cleanedList = [] for transaction in listOfTransaction: itemList = [] for item in transaction: if False == pd.isnull(item): itemList.append(item) cleanedList.append(itemList) return cleanedListdef allocationPhase(dataframe1): formedData = (formData(dataframe1)) return formedDatadef azureml_main(dataframe1 = None, dataframe2 = None): formToPandas(allocationPhase(dataframe1))
希望这能提供更多帮助。非常感谢你的帮助。如果我之前就知道如何这样实现代码,我会提前分享的。:D 抱歉!
回答:
这可以工作:
def formData(dataset): listOfTransaction = list() listOfTransaction = dataset.values.tolist() cleanedList = [] for transaction in listOfTransaction: itemList = [] for item in transaction: if False == pd.isnull(item): itemList.append(item) cleanedList.append(itemList) return cleanedListdef formToPandas(result): return pd.DataFrame(result)
我之前找错了问题所在。真正的原因是在Visual Studio中,(x/y)*100没有问题,其中x远小于y,但在Azure ML中,除非你将变量定义为x = 0.0,否则结果会是0。