Guan_yiqiang 2024-12-04 09:53 采纳率: 42.9%
浏览 25
已结题

pandas读取表格时出现Too many indexers错误

使用Pandas出现了报错,不知道是什么原因,在网上查找了原因我也是一脸懵,不知道是为什么,友友们可以帮忙解答一下吗?谢谢

import pandas as pd
import matplotlib.pyplot as plt
df=pd.read_excel('C:\\Users\\mi\\OneDrive\\桌面\\P-xy and T-xy Diagram(2024.10.21)\\校正饱和蒸气压后的COSMO-SAC的VLE预测数据\\1,1,1,2,3,3,3-Heptafluoropropane\\PROPANE.xlsx',sheet_name='VLE Data')
T_278={'P1':df.iloc[2:53,21],'x1':df.iloc[2:53,22],'y1':df.iloc[2:53,23],
       'P2':df.iloc[2:31,7],'x2':df.iloc[2:31,8],'y2':df.iloc[2:31,9],
       'P3':df.iloc[2:15,2],'x3':df.iloc[2:15,3],'y3':df.iloc[2:15,4]}
T_308={'P1':df.iloc[2:53,25],'x1':df.iloc[2:53,26],'y1':df.iloc[2:53,27],
       'P2':df.iloc[32:61,7],'x2':df.iloc[32:61,8],'y2':df.iloc[32:61,9],
       'P3':df.iloc[16:28,2],'x3':df.iloc[16:28,3],'y3':df.iloc[16:28,4]}
T_293={'P1':df.iloc[2:53,29],'x1':df.iloc[2:53,30],'y1':df.iloc[2:53,31],
       'P2':df.iloc[62:91,7],'x2':df.iloc[62:91,8],'y2':df.iloc[62:91,9],
       'P3':df.iloc[29:43,2],'x3':df.iloc[29:43,3],'y3':df.iloc[29:43,4]}
T_313={'P1':df.iloc[2:53,33],'x1':df.iloc[2:53,34],'y1':df.iloc[2:53,35],
       'P2':df.iloc[122:151,7],'x2':df.iloc[122:151,8],'y2':df.iloc[122:151,9],
       'P3':df.iloc[57:72,2],'x3':df.iloc[57:72,3],'y3':df.iloc[57:72,4]}
T_333={'P1':df.iloc[2:53,37],'x1':df.iloc[2:53,38],'y1':df.iloc[2:53,39],
       'P2':df.iloc[152:181,7],'x2':df.iloc[152:181,8],'y2':df.iloc[152,181,9],
       'P3':df.iloc[73:95,2],'x3':df.iloc[73:95,3],'y3':df.iloc[73:95,4]}
T_343={'P1':df.iloc[2:53,41],'x1':df.iloc[2:53,42],'y1':df.iloc[2:53,43],
       'P2':df.iloc[182:211,7],'x2':df.iloc[182:211,8],'y2':df.iloc[182:211,9],
       'P3':df.iloc[96:107,2],'x3':df.iloc[96:107,3],'y3':df.iloc[96:107,4]}
T_353={'P1':df.iloc[2:53,45],'x1':df.iloc[2:53,46],'y1':df.iloc[2:53,47],
       'P2':df.iloc[212:241,7],'x2':df.iloc[212:241,8],'y2':df.iloc[212:241,9],
       'P3':df.iloc[108:125,2],'x3':df.iloc[108:125,3],'y3':df.iloc[108:125,4]}

img

报错情况如上图所示

  • 写回答

1条回答 默认 最新

  • 赵4老师 2024-12-04 10:13
    关注

    这个“IndexingError: Too many indexers”错误在使用 pandas 进行数据索引时经常出现,主要是因为你尝试使用的索引器数量超过了 DataFrame 或 Series 允许的维度。

    在 pandas 中,DataFrame 是一个二维数据结构,因此你通常需要使用两个索引器来访问其元素:一个是行索引,另一个是列索引。例如,df.loc[row_index, column_index]。

    如果你尝试使用超过两个索引器来访问 DataFrame 的元素,就会触发这个错误。同样地,对于一维数据结构 Series,你只需要一个索引器。如果你尝试使用两个索引器来访问 Series 的元素,也会遇到这个错误。

    这里有几个可能导致这个错误的常见场景:

    ‌错误的索引器数量‌:你可能不小心多写了一个索引器。

    ‌使用了错误的索引方法‌:例如,你可能应该使用 .iloc[](基于整数位置的索引)而不是 .loc[](基于标签的索引),但错误地使用了后者并提供了额外的索引器。

    ‌混淆了 DataFrame 和 Series‌:如果你期望处理的是一个 DataFrame 但实际上得到的是一个 Series(或者相反),那么你的索引器数量可能会不匹配。

    ‌使用了多维索引但数据结构不支持‌:例如,你尝试对一个普通的 DataFrame 使用多级索引(MultiIndex)的访问方式。

    为了解决这个问题,请检查你的索引器数量是否与你的数据结构维度相匹配。确保你使用的是正确的索引方法和索引器数量。如果你不确定数据结构的维度,可以使用 .ndim 属性来检查 DataFrame 或 Series 的维度。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 12月12日
  • 已采纳回答 12月4日
  • 创建了问题 12月4日