如何传递错误IndexError:单个位置索引器在python中越界

时间:2020-11-09 17:29:52

标签: python pandas csv

我正在使用ILOC从熊猫中提取csv中的数据。当我想提取没有任何内容的列和行的文本时,只会抛出此错误: IndexError:单个位置索引器超出范围

我完全知道为什么会出现此错误,但是我想代替错误我只是不放任何东西或类似的东西。

当我尝试从一个空单元格中提取文本时,有没有办法给我一个无,0或类似的东西?

这是代码:

        products = pd.read_csv("priv/products.csv")
        product_1 = products.iloc[0,1]

2 个答案:

答案 0 :(得分:0)

看起来像语法错误。对于documentation,您只能将以下内容作为输入传递给iloc

.iloc []主要是基于整数位置(从0到轴的长度1),但是也可以与布尔数组一起使用。

允许的输入为:

一个整数,例如5。

整数列表或数组,例如[4,3,0]。

带有整数的切片对象,例如1:7。

一个布尔数组。

基于此,这可能会解决您的问题:

products = pd.read_csv("priv/products.csv")
product_1 = products.iloc[[0,1]]

答案 1 :(得分:0)

您始终可以将其粘贴在try块中。如果发现代码混乱,可以创建一个辅助函数。

def tryloc(df, col, idx, default=None):
  try:
    return df.iloc[col, idx]
  except IndexError:
    return default

products = pd.read_csv("priv/products.csv")
product_1 = tryloc(products, 0, 1)
相关问题