2017-04-23 3 views
-1

私は 'OneHot'という名前のデータフレームから列を読み込んでいます。この列の各行は、[1,0]または[0,1]のいずれかの値を持ちます。これらの値を変数に格納しようとしているので、ニューラルネットワークで使用できます。マトリックスが間違った寸法をプリントしています

問題: 変数に値を読み込むと、(792824、2)の代わりに(792824、1)として格納されます。 792824は、データフレーム内の行の量です。私は形を変えようとしたが、うまくいかなかった。ここで

は、私が持っているコードです:添付

input_matrix = np.matrix(df['VectorTweet'].values.tolist()) 
​ 
In [157]: 

    input_matrix = np.transpose(input_matrix) 
    x_inputs = input_matrix.shape 
    print x_inputs 
(792824, 1) 

In [160]: 

    output_matrix = np.matrix(df['OneHot'].values.tolist()) 
    y_inputs = np.transpose(output_matrix) 
    print y_outputs.shape 
​ 
(792824, 1) 

    print y_outputs[1] 

[['[1, 0]']] 

は私のデータフレームExample of my dataframeの抜粋です。

enter image description here

答えて

0

OneHot内の各エントリはリストの文字列表現であるように見えます。そのため、転置では1つの列しか得られません - 整数リストの文字列の単一要素リストを作成しました。あなたはast.literal_eval()で、実際のリストにリストの文字列を変換することができます

# OneHot as string of list of ints 
strOneHot = pd.Series(['[0,1]','[1,0]']) 

print(strOneHot.values) 
# ['[0,1]' '[1,0]'] 

import ast 
print(strOneHot.apply(ast.literal_eval).values) 
# [[0, 1] [1, 0]] 

FWIWは、あなたが.Tでパンダシリーズの転置を取ることができ、それはここに便利です場合:

strOneHot.apply(ast.literal_eval).T 

出力:

0 [0, 1] 
1 [1, 0] 
dtype: object 
関連する問題