Como converter um arquivo de dados Excel em numpy matriz usando pandas?

votos
1

Estou realmente novo na biblioteca keras e também Python. Estou tentando importar um arquivo do Excel usando pandas e convertê-lo em um numpy.ndarrayusando as_matrix()a função de pandas. Mas costuras para ler meu arquivo errado. Como se eu tivesse um 90x1049 conjunto de dados no arquivo de Excel. Mas quando eu estou tentando convertê-lo em conjunto numpy ele lê meus dados como 89x1049. Eu estou usando o código a seguir, o que não está funcionando:

training_data_x = pd.read_excel(/home/workstation/ANN/new_input.xlsx)
X_train = training_data_x.as_matrix()
Publicado 02/04/2016 em 06:00
fonte usuário
Em outras línguas...                            


2 respostas

votos
1

Provavelmente o que acontece é que seu arquivo Excel não tem nenhuma linha de cabeçalho e assim pandas.read_excel consome a sua primeira linha de dados como tal.

Eu tentei criar um xlsx contendo

1   2   3
2   3   4
3   4   5
4   5   6
5   6   7
6   7   8
7   8   9
8   9   10
9   10  11
10  11  12

Reading, que resultou em

In [3]: df = pandas.read_excel('test.xlsx')

In [4]: df
Out[4]: 
    1   2   3
0   2   3   4
1   3   4   5
2   4   5   6
3   5   6   7
4   6   7   8
5   7   8   9
6   8   9  10
7   9  10  11
8  10  11  12

Como pode ser visto, a primeira linha de dados tem sido usado como etiquetas para colunas.

Para evitar consumir a primeira linha de dados como cabeçalhos, passar headers=Nonepara read_excel. Curiosamente a documentação não menciona esse uso:

cabeçalho : int, lista de ints, padrão 0

Fila (0-indexados) a ser usado para as etiquetas da trama de dados analisado coluna. Se uma lista de números inteiros é passado as posições de linhas serão combinados em um MultiIndex

Respondeu 02/04/2016 em 06:42
fonte usuário

votos
0

Se você não tem cabeçalho, tente o seguinte:

training_data = pd.read_excel("/home/workstation/ANN/new_input.xlsx", header=None)

X_train = training_data_x.as_matrix()

Veja também as respostas de uma pergunta anterior .

Respondeu 02/04/2016 em 06:47
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more