Zamknij: najpierw zadzwoń pod numer ExcelFile
, ale następnie wywołaj metodę .parse
i przekaż jej nazwę arkusza.
>>> 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
Co robisz jest wywołanie metody, która mieszka na samej klasie, zamiast instancji, który jest w porządku (choć nie bardzo idiomatyczne), ale jeśli robisz, że trzeba także podać nazwę arkusza:
>>> 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)
kiedy używać „df = xl.parse (” Arkusz1 „)” automatycznie przyjmuje wartość pierwszej komórki w każdej kolumnie jak nazwy kolumn w dataframe, w jaki sposób określić własne nazwy kolumn? –
W pand 15.0.2, 'parsed = pd.io.parsers.ExcelFile.parse (xl," Arkusz1 ")' nie działa i zgłasza błąd 'obiekt modułu nie ma atrybutu ExcelFile'. 'parsed = pd.io.excel.ExcelFile.parse (xl," Sheet1 ")' działa dla mnie – Neil
Nice. Jest to prawie tak samo wygodne, jak uzyskiwanie tego samego dostępu do karty za pomocą 'openpyxl'. Czy pandy nazywają openpyxl pod maską? – Pyderman