2016-12-27 4 views
1

Ich versuche, eine Excel-Datei in Python (2.7.13) zu lesen. Dafür ich eine Beispieldatei erstellt, Mappe1, mit folgenden Einträgen -Nicht in der Lage, die gewünschte Excel-Datei als Ausgabe in Python zu lesen

enter image description here

import pandas as pd 
import numpy as np 

Book1 = pd.read_excel("D:\Python\Book1.xlsx") 

print(Book1.head()) 

Nach dem oben genannten Programm zu schreiben und es in Powershell ausgeführt wird, habe ich die folgende Ausgabe, die ich nicht verstehe.

enter image description here

Was sind die 0,1,2 in der ersten Spalte und warum der Wert von E-Zelle von 7 geändert yo 7.1? Kann mir das jemand erklären? Stimmt etwas nicht mit dem Programm?

Ich entschuldige mich, wenn die hochgeladenen Bilder hier nicht angemessen sind. Ich kenne keine andere Möglichkeit, solche Daten einzugeben.

Antwort

6

0,1,2 sind die Zeilenindizes, da Sie keine Kopfzeile übergeben haben, wurde die erste Zeile automatisch in eine Kopfzeile konvertiert.

Jetzt können wir nicht zwei Spalten mit dem gleichen Namen haben, und so die zweite 7-7,1

umgewandelt wurde dies zu korrigieren, können Sie versuchen:

no_of_columns = 5 Book1 =pd.read_excel("D:\Python\Book1.xlsx",header=None,name=range(no_of_columns))

Hinweis dass Sie die Anzahl der Spalten vorher wissen müssen, um dies zu tun.

4

Pandas liest die erste Zeile als Header-Spalte. Da ein Konflikt bei der Benennung von Spalten vermieden werden soll, behält die erste Spalte 7 ihren ursprünglichen Namen. Die zweite 7 würde eine Kollision erzeugen, also ändert Pandas sie zu 7.1.

Set header=None. Eine vollständige Beschreibung der Parameter finden Sie unter docs.

Sie können die names der Spalten wie folgt angeben.

Book1 = pd.read_excel("D:\Python\Book1.xlsx", header=None, 
         names=['col1', 'col2', 'col3', 'col4', 'col5']) 

Die 0, 1 und 2 sind die Indizes der Zeilen. Mit diesen Nummern können Sie sich auf eine Zeile beziehen.

>>> Book1[0] 
1 3 7 2 7.1 <- column names 
2 2 3 2 1 <- values in row 0 
Verwandte Themen