以下のコードに従って複数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_iti
2Dnumpy配列です。ただし、次の場合:
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]
コメントを追加