错误代码:pandas.errors.IndexingError: Too many indexers理解与解决方法

文章讲述了在使用Pandas处理数据时遇到的IndexingError问题,原因是尝试对Series类型数据使用两个索引。解决方案是正确理解和使用.iloc[],Series只能用一个索引。示例代码展示了如何选择Series的第一个元素和前三个元素。另外,解释了DataFrame中Data.iloc[:,:]的选择含义,它返回DataFrame的全副本而非引用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在做毕设的过程中,在这个报错这里卡了很久。

#错误示范❌

import pandas as pd
#导入数据
DATA = pd.read_excel(r'数据呀.xlsx') #数据集的地址
Data = DATA['转速(rpm)']
data = Data.iloc[:, 0]  #大迷糊如我,因为看到它是第一列序号,第二列是标签和底下的数据,就以为它是dataframe结构了

#接下来是想继续用seaborn画图的,就一直报错了

错误代码:pandas.errors.IndexingError: Too many indexers

其实很简单,用print(type(Data))看一下,会发现Data其实是series类型的,只有一个维度。那么就不能用两个索引了。其实很简单。

例如,要选择 Series 中的第一个元素,可以使用以下代码:

first_element = series.iloc[0]

要选择 Series 中的前三个元素,可以使用以下代码:

first_three_elements = series.iloc[:3]

关于iloc的补充~

Data.iloc[:, :] 是 Pandas DataFrame 的索引语法,它使用 .iloc 索引器通过整数位置来选择数据。在这种情况下,它选择了 DataFrame 中的所有行和所有列。

.iloc 索引器的语法为 df.iloc[行, 列],其中 df 是您的 DataFrame 对象。在 Data.iloc[:, :] 中,第一个冒号 : 表示选择所有行,第二个冒号 : 表示选择所有列。

因此,Data.iloc[:, :] 返回的是整个 DataFrame 的副本。请注意,这与直接使用 Data 引用原始 DataFrame 是不同的,因为它返回的是一个新的 DataFrame 对象,而不是对原始 DataFrame 的引用。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值