簡體   English   中英

如何從python腳本返回Azure ML中的Dataframe

[英]How to return a Dataframe in Azure ML from a python script

我有以下Python腳本。 我正在嘗試返回創建的新Dataframe。 不幸的是,我得到了“NotImplementedError:”

請告訴我,如何從python腳本返回Azure ML中的Dataframe

碼:

def azureml_main(df) :

    therm_patterns,therm_missed_patterns = thermostat_phase(df)
    th_pat = json.loads(therm_patterns)
    missed_th_pat = json.loads(therm_missed_patterns)

    light_patterns, light_missed_patterns = light_phase(df)
    lt_pat = json.loads(light_patterns)
    missed_lt_pat = json.loads(light_missed_patterns)

    for j in range (0,len(lt_pat)):
        for i in range (0,len(lt_pat[0]['John'])):
            th_pat[0]['John'].append(lt_pat[0]['John'][i])
    for j in range (0,len(lt_pat)):
        for i in range (0,len(lt_pat[0]['Jane'])):
            th_pat[0]['Jane'].append(lt_pat[0]['Jane'][i])
    for j in range (0,len(lt_pat)):
        for i in range (0,len(lt_pat[0]['Jen'])):
            th_pat[0]['Jen'].append(lt_pat[0]['Jen'][i])

    for j in range (0,len(missed_lt_pat)):
        for i in range (0,len(missed_lt_pat[0]['John'])):
            missed_th_pat[0]['John'].append(missed_lt_pat[0]['John'][i])
    for j in range (0,len(missed_lt_pat)):
        for i in range (0,len(missed_lt_pat[0]['Jane'])):
            missed_th_pat[0]['Jane'].append(missed_lt_pat[0]['Jane'][i])
    for j in range (0,len(missed_lt_pat)):
        for i in range (0,len(missed_lt_pat[0]['Jen'])):
            missed_th_pat[0]['Jen'].append(missed_lt_pat[0]['Jen'][i])

    output = json.dumps(th_pat)

    df = pd.DataFrame.from_dict({k: v[0] for k, v in json.loads(output) 
    [0].items()}, 'index' ).rename_axis('User').reset_index()


    return df         

錯誤:

  Error 0085: The following error occurred during script evaluation, please  
  view the output log for more information:

   ---------- Start of error message from Python interpreter ----------
   Caught exception while executing function: Traceback (most recent call  
   last):

       File "C:\server\invokepy.py", line 211, in batch
       xdrutils.XDRUtils.DataFrameToRFile(outlist[i], outfiles[i], True)

       File "C:\server\XDRReader\xdrutils.py", line 54, in DataFrameToRFile
       xdrwriter.write_attribute_list(attributes)

       File "C:\server\XDRReader\xdrwriter2.py", line 155, in   
       write_attribute_list
       self.write_object(value)

       File "C:\server\XDRReader\xdrwriter2.py", line 215, in write_object
       write_func(flags, converted, missingIndices)

       File "C:\server\XDRReader\xdrwriter2.py", line 185, in write_objects
       self.write_object(value)

       File "C:\server\XDRReader\xdrwriter2.py", line 200, in write_object
       raise NotImplementedError('Python Bridge conversion table not    
       implemented for type [{0}]'.format(value.getType()))

       NotImplementedError: Python Bridge conversion table not implemented  
       for type [<type 'list'>]

       Process returned with non-zero exit code 1

最好的想法是將其作為CSV文件(azure python腳本中的geniune選項)返回,然后如果您願意,可以將其轉換回df。 但我確實相信csv文件是您需要的最終產品

看起來您的數據框包含元組作為列的值。 到目前為止,Azure機器學習工作區不支持數據框中的元組。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM