Ik probeer een Excel-bestand op deze manier te lezen:
newFile = pd.ExcelFile(PATH\FileName.xlsx)
ParsedData = pd.io.parsers.ExcelFile.parse(newFile)
die een fout geeft die zegt dat er twee argumenten worden verwacht, ik weet niet wat het tweede argument is en ook wat ik hier probeer te bereiken is om een Excel-bestand naar een DataFrame te converteren. Doe ik het op de juiste manier? of is er een andere manier om dit te doen met behulp van panda’s?
Antwoord 1, autoriteit 100%
Sluiten: eerst roept u ExcelFile
aan, maar roept u vervolgens de methode .parse
aan en geeft deze de bladnaam door.
>>> 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
Wat je doet, is de methode aanroepen die op de klasse zelf leeft, in plaats van de instantie, wat goed is (hoewel niet erg idiomatisch), maar als je dat doet, moet je ook de bladnaam doorgeven :
>>> 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)
Antwoord 2, autoriteit 43%
Dit is een veel eenvoudige en gemakkelijke manier.
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)
bekijk de volledige details van de documentatie
http://pandas.pydata.org/pandas -docs/version/0.17.1/generated/pandas.read_excel.html
FutureWarning: het trefwoord sheetname
is verouderd voor nieuwere versies van Panda’s, gebruik in plaats daarvan sheet_name
.
Antwoord 3, autoriteit 8%
Ik dacht dat ik hier zou moeten toevoegen dat als je toegang wilt krijgen tot rijen of kolommen om er doorheen te bladeren, je dit doet:
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
Bewerken:
De methoden icol(i)
en irow(i)
zijn nu verouderd. Je kunt sheet1.iloc[:,i]
gebruiken om de i-th col te krijgen en sheet1.iloc[i,:]
om de i-th row te krijgen.
Antwoord 4, autoriteit 7%
Ik denk dat dit aan uw behoefte moet voldoen:
import pandas as pd
# Read the excel sheet to pandas dataframe
df = pd.read_excel("PATH\FileName.xlsx", sheet_name=0) #corrected argument name
Antwoord 5
Je hoeft alleen het pad naar je bestand in te voeren in pd.read_excel
import pandas as pd
file_path = "./my_excel.xlsx"
data_frame = pd.read_excel(file_path)
Bekijk de documentatieom te verkennen parameters zoals skiprows
om rijen te negeren bij het laden van de Excel
Antwoord 6
Hier is een bijgewerkte methode met syntaxis die vaker voorkomt in python-code. Het voorkomt ook dat u hetzelfde bestand meerdere keren opent.
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
Antwoord 7
import pandas as pd
data = pd.read_excel (r'**YourPath**.xlsx')
print (data)
Antwoord 8
Het laden van een Excel-bestand zonder een blad expliciet een naam te geven, maar in plaats daarvan het nummer van de bladvolgorde te geven (vaak laadt men gewoon het eerste blad) gaat als volgt:
import pandas as pd
myexcel = pd.ExcelFile("C:/filename.xlsx")
myexcel = myexcel.parse(myexcel.sheet_names[0])
Aangezien .sheet_names
een lijst met bladnamen retourneert, is het gemakkelijk om een of meer bladen te laden door simpelweg de lijstelement(en) aan te roepen.
Antwoord 9
Al deze werken voor mij
In [1]: import pandas as pd
In [2]: df = pd.read_excel('FileName.xlsx') # If there is only one sheet in the excel file
In [3]: df = pd.read_excel('FileName.xlsx', sheet_name=0)
In [4]: In [20]: df = pd.read_excel('FileName.xlsx', sheet_name='Sheet 1')