在做毕设的过程中,在这个报错这里卡了很久。
#错误示范❌
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 的引用。