2017-04-23 2 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]']] 

내 dataframe Example of my dataframe의 조각입니다 : 여기

는 내가 가지고있는 코드입니다. OneHot의 각 항목이 목록의 문자열 표현처럼

enter image description here

답변

0

보인다. 그렇기 때문에 전치 수식에서 하나의 열만 얻는 것입니다. 정수 목록 문자열의 단일 요소 목록을 만들었습니다. 당신은 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 
관련 문제