首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pandas.core.indexing.IndexingError:索引器太多

pandas.core.indexing.IndexingError:索引器太多
EN

Stack Overflow用户
提问于 2018-11-21 16:42:33
回答 1查看 12K关注 0票数 9

我想提取站点2的用电量

代码语言:javascript
复制
>>> 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

类型

代码语言:javascript
复制
type(df4)
<class 'pandas.core.frame.DataFrame'>

我的目标是取出数值,但我不知道如何正确设置索引。到目前为止,我已经尝试过的方法根本不起作用。

代码语言:javascript
复制
df1 = df.loc[idx[:,1:2],:]

代码语言:javascript
复制
    raise IndexingError('Too many indexers')
pandas.core.indexing.IndexingError: Too many indexers

似乎我不理解索引。系列类型有什么作用吗?

代码语言:javascript
复制
df.head
<bound method NDFrame.head of Site                   Site 2
Unnamed: 1                 HH

编辑

代码语言:javascript
复制
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,

如何解决这个问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-21 16:43:56

在我看来,删除:是必要的,因为这意味着选择所有列,但是Series没有列。

而且看起来没有MultiIndex,所以需要:

代码语言:javascript
复制
df1 = df.iloc[1:2]

有一个问题,前两行是标题,所以对于MultiIndex DataFrame需要:

代码语言:javascript
复制
df4 = pd.read_excel(xls, 'Elec Monthly Cons', header=[0,1], index_col=[0,1])

然后选择使用:

代码语言:javascript
复制
idx = pd.IndexSlice
df1 = df.loc[:, idx[:,'FEB 2014':'MAR 2014']]
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53408148

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档