エラーの取得:「ValueError:すべてのスカラー値を使用する場合は、ndarrayをpandasデータフレームに変換するときにインデックスを渡す必要があります」

balandongiv

以下のコードに従って複数ndarrayをaに変換する場合df

import  numpy as np
import pandas as pd

ls_a = ['TA', 'BAT', 'T']
xxx = ['xx', 'cc']

feature_no = len(ls_a)
windows_no = len(xxx)


sub_iti = np.repeat([['s1']], (feature_no * windows_no), axis=0).reshape(-1, 1)
tw = np.repeat([xxx], feature_no, axis=1).reshape(-1, 1)
col_iti = np.repeat([ls_a], windows_no, axis=0).reshape(-1, 1)

df=pd.DataFrame ({'sub_iti': sub_iti,'tw': tw,'col_iti': col_iti})

、コンパイラはエラーを返します

ValueError:すべてのスカラー値を使用する場合は、インデックスを渡す必要があります

OP基づいて、引数indexは以下のように入力されました

 df=pd.DataFrame (
             {'sub_iti': sub_iti,
              'tw': tw,
              'col_iti': col_iti},index=range(0,3*2) )

ただし、コンパイラは異なるエラーを返します

例外:データは1次元である必要があります

この問題に対処する方法を教えてもらえますか?

クアンホアン

あなたのすべてはsub_iti, tw, col_iti2Dnumpy配列です。ただし、次の場合:

df=pd.DataFrame ({'sub_iti': sub_iti,
                   'tw': tw,
                   'col_iti': col_iti} )

Pandas1Dは、DataFrameの列がそうあるべきであるため、それらが多数の配列またはリストであると予想していましたあなたが試すことができます:

df=pd.DataFrame ({'sub_iti': sub_iti.tolist(),
                 'tw': tw.tolist(),'col_iti': col_iti.tolist()})

出力:

  sub_iti    tw col_iti
0    [s1]  [xx]    [TA]
1    [s1]  [xx]   [BAT]
2    [s1]  [xx]     [T]
3    [s1]  [cc]    [TA]
4    [s1]  [cc]   [BAT]
5    [s1]  [cc]     [T]

ただし、各セル内のリストを削除して、次のravel()代わりに使用する必要があると思いますtolist()

df=pd.DataFrame ({'sub_iti': sub_iti.ravel(),
                 'tw': tw.ravel(),'col_iti': col_iti.ravel()})

出力:

  sub_iti  tw col_iti
0      s1  xx      TA
1      s1  xx     BAT
2      s1  xx       T
3      s1  cc      TA
4      s1  cc     BAT
5      s1  cc       T

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

Related 関連記事

ホットタグ

アーカイブ