pandas.core.indexing.IndexingError: слишком много индексаторов - PullRequest
0 голосов
/ 21 ноября 2018

Я хочу извлечь потребление электроэнергии для Зоны 2

>>> df4 = pd.read_excel(xls, 'Elec Monthly Cons')
>>> df4
     Site Unnamed: 1 2014-01-01 00:00:00 2014-02-01 00:00:00 2014-03-01 00:00:00         ...         2017-08-01 00:00:00 2017-09-01 00:00:00 2017-10-01 00:00:00 2017-11-01 00:00:00 2017-12-01 00:00:00
0    Site    Profile            JAN 2014            FEB 2014            MAR 2014         ...                    AUG 2017            SEP 2017            OCT 2017            NOV 2017            DEC 2017
1  Site 1        NHH               10344                 NaN                 NaN         ...                         NaN                 NaN                 NaN                 NaN                 NaN
2  Site 2         HH              258351              229513              239379         ...                         NaN                 NaN                 NaN                 NaN                 NaN

тип

type(df4)
<class 'pandas.core.frame.DataFrame'>

Моя цель - вывести числовое значение, но я не знаю, как установить индексдолжным образом.То, что я пробовал до сих пор, не работает вообще.

df1 = df.loc[idx[:,1:2],:]

Но

    raise IndexingError('Too many indexers')
pandas.core.indexing.IndexingError: Too many indexers

Кажется, я не понимаю индексации.Тип сериала играет какую-либо роль?

df.head
<bound method NDFrame.head of Site                   Site 2
Unnamed: 1                 HH

РЕДАКТИРОВАТЬ

print (df.index)
Index([             'Site',        'Unnamed: 1', 2014-01-01 00:00:00,
       2014-02-01 00:00:00, 2014-03-01 00:00:00, 2014-04-01 00:00:00,
       2014-05-01 00:00:00, 2014-06-01 00:00:00, 2014-07-01 00:00:00,

Как решить эту проблему?

1 Ответ

0 голосов
/ 21 ноября 2018

На мой взгляд, необходимо удалить :, поскольку это означает, что нужно выбрать все столбцы, но Series не имеет столбцов.

Также, похоже, нет MultiIndex, поэтому тогда необходимо:

df1 = df.iloc[1:2]

Проблема в том, что первые 2 строки являются заголовками, поэтому для MultiIndex DataFrame необходимо:

df4 = pd.read_excel(xls, 'Elec Monthly Cons', header=[0,1], index_col=[0,1])

А затем для выбора использовать:

idx = pd.IndexSlice
df1 = df.loc[:, idx[:,'FEB 2014':'MAR 2014']]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...