【错误归纳】IndexError: single positional indexer is out-of-bounds

问题说明

我使用了seaborn 画图,加载数据的时候出现了下面的这个错误提示:

IndexError: single positional indexer is out-of-bounds

我先按照seaborn 给的教程试了一下,竟然出错了,它的教程是这么弄的

import seaborn as sns; sns.set()
import matplotlib.pyplot as plt
tips = sns.load_dataset("tips")
ax = sns.scatterplot(x="total_bill", y="tip", data=tips)

它的 sns.load_dataset(“tips”) 括号里面的这个是一个csv 文件,名字就叫“tips.csv”,记录了支付的总金额和小费的关系. 具体的格式如下图所示:

【错误归纳】IndexError: single positional indexer is out-of-bounds_第1张图片
你可以在github下载到他的数据集,自己实验一下。

这个例子代码是可以通过的,但是我自己的数据集就比较大了,所以运行的时候就报错了

【错误归纳】IndexError: single positional indexer is out-of-bounds_第2张图片

看代码的时候似乎是限制了index的大小? 可能是我自己的数据集横坐标和纵坐标的大小差异太大了。怎么办呢,问题总是要解决的。观察我们的画图函数

ax = sns.scatterplot(x="total_bill", y="tip", data=tips)

需要给两组数据,每个都是一个一维向量。

所以这个时候我就用pandas 来处理我们的数据,我们还是用tips.csv 这个数据来举例子。

import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd 

path = "./tips.csv"

df = pd.read_csv(path)

x_ = df["total_bill"]
y_ = df["tip"]

ax = sns.scatterplot(x=x_, y = y_, data=df)

plt.show()

这样问题就解决了,主要问题就是seaborn 加载数据的函数自己有一些bug,但是画图的这个函数只要数据给对了就没有问题了。



【错误归纳】IndexError: single positional indexer is out-of-bounds_第3张图片

你可能感兴趣的:(【Python】)