2

以下のPythonスクリプトがあります。そして私は作成された新しいDataframeを返そうとしています。残念ながら、私は "NotImplementedError:" そうだPythonスクリプトからAzure MLでDataframeを返す方法

私はPythonスクリプト

コードからAzureのMLでのデータフレームを返す方法を、教えてください:

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 
+1

azureml_main()でPandasデータフレームを使用する際に問題があります。マイクロソフトでは、2011年1月18日に修正が出ていると伝えています。うまくいけば、それもあなたの問題を解決します。 – andyabel

答えて

0

最高のアイデアは、CSVファイル(azure pythonスクリプトのgeniuneオプション)として返すことです。望むなら、後でそれをdfに戻すことができます。しかし、私はcsvファイルが必要な最終製品であると信じています

0

あなたのデータフレームがタプルを列の値として含んでいるようです。 Azureマシン学習ワークスペースは現在のようにデータフレーム内のタプルをサポートしていません。

関連する問題