it-swarm.com.de

Lesen einer Excel-Datei in python mit pandas

Ich versuche, eine Excel-Datei folgendermaßen zu lesen:

newFile = pd.ExcelFile(PATH\FileName.xlsx)
ParsedData = pd.io.parsers.ExcelFile.parse(newFile)

das löst einen Fehler aus, der besagt, dass zwei Argumente erwartet werden. Ich weiß nicht, was das zweite Argument ist, und ich versuche auch, hier eine Excel-Datei in einen DataFrame zu konvertieren. Tue ich das richtig? Oder gibt es eine andere Möglichkeit, dies mit Pandas zu tun?

129

Schließen: Zuerst rufen Sie ExcelFile auf, dann rufen Sie .parse Methode und übergebe ihm den Blattnamen.

>>> xl = pd.ExcelFile("dummydata.xlsx")
>>> xl.sheet_names
[u'Sheet1', u'Sheet2', u'Sheet3']
>>> df = xl.parse("Sheet1")
>>> df.head()
                  Tid  dummy1    dummy2    dummy3    dummy4    dummy5  \
0 2006-09-01 00:00:00       0  5.894611  0.605211  3.842871  8.265307   
1 2006-09-01 01:00:00       0  5.712107  0.605211  3.416617  8.301360   
2 2006-09-01 02:00:00       0  5.105300  0.605211  3.090865  8.335395   
3 2006-09-01 03:00:00       0  4.098209  0.605211  3.198452  8.170187   
4 2006-09-01 04:00:00       0  3.338196  0.605211  2.970015  7.765058   

     dummy6  dummy7    dummy8    dummy9  
0  0.623354       0  2.579108  2.681728  
1  0.554211       0  7.210000  3.028614  
2  0.567841       0  6.940000  3.644147  
3  0.581470       0  6.630000  4.016155  
4  0.595100       0  6.350000  3.974442  

Sie rufen die Methode auf, die von der Klasse selbst lebt, und nicht von der Instanz. Dies ist in Ordnung (wenn auch nicht sehr idiomatisch). In diesem Fall müssen Sie jedoch auch den Blattnamen übergeben:

>>> parsed = pd.io.parsers.ExcelFile.parse(xl, "Sheet1")
>>> parsed.columns
Index([u'Tid', u'dummy1', u'dummy2', u'dummy3', u'dummy4', u'dummy5', u'dummy6', u'dummy7', u'dummy8', u'dummy9'], dtype=object)
206
DSM

Dies ist viel einfacher und einfacher Weg.

import pandas
df = pandas.read_Excel(open('your_xls_xlsx_filename','rb'), sheetname='Sheet 1')
# or using sheet index starting 0
df = pandas.read_Excel(open('your_xls_xlsx_filename','rb'), sheetname=2)

lesen Sie die vollständigen Details der Dokumentation http://pandas.pydata.org/pandas-docs/version/0.17.1/generated/pandas.read_Excel.html

FutureWarning: Das Schlüsselwort sheetname ist für neuere Pandas Versionen veraltet, verwenden Sie sheet_name stattdessen.

86
Murali Mopuru

Dachte, ich sollte hier hinzufügen, dass, wenn Sie auf Zeilen oder Spalten zugreifen möchten, um sie zu durchlaufen, Sie dies tun:

import pandas as pd

# open the file
xlsx = pd.ExcelFile(PATH\FileName.xlsx)

# get the first sheet as an object
sheet1 = xlsx.parse(0)

# get the first column as a list you can loop through
# where the is 0 in the code below change to the row or column number you want    
column = sheet1.icol(0).real

# get the first row as a list you can loop through
row = sheet1.irow(0).real

Edit:

Die Methoden icol(i) und irow(i) sind jetzt veraltet. Sie können sheet1.iloc[:,i] Verwenden, um die i-te Spalte abzurufen, und sheet1.iloc[i,:], Um die i-te Zeile abzurufen.

18
Dr Manhattan

Ich denke, das sollte Ihr Bedürfnis befriedigen:

import pandas as pd

# Read the Excel sheet to pandas dataframe
DataFrame = pd.read_Excel("PATH\FileName.xlsx", sheetname=0)
12
Ajay Sant

Sie müssen nur den Pfad zu Ihrer Datei eingeben, um pd.read_Excel

import pandas as pd

file_path = "./my_Excel.xlsx"
data_frame = pd.read_Excel(file_path)

Checkout die Dokumentation um Parameter wie skiprows zu untersuchen, um Zeilen beim Laden des Excel zu ignorieren

0
ted
import pandas as pd

data = pd.read_Excel (r'**YourPath**.xlsx')

print (data)
0

Hier ist eine aktualisierte Methode mit einer Syntax, die in python code häufiger vorkommt. Sie verhindert auch, dass Sie dieselbe Datei mehrmals öffnen.

import pandas as pd

sheet1, sheet2 = None, None
with pd.ExcelFile("PATH\FileName.xlsx") as reader:
    sheet1 = pd.read_Excel(reader, sheet_name='Sheet1')
    sheet2 = pd.read_Excel(reader, sheet_name='Sheet2')

https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_Excel.html

0
Quinn