- 此问题在此处已有答案**:
(13个答案)
昨天关门了。
我有一个数据集,我想用子图绘制所有列的散点图,最后一列是结果。
fig, ax = plt.subplots(figsize=(10, 6))
for i in range(len(columns)-1):
columns = df.columns[i]
ax.scatter(x = df[columns], y = df['Result'])
plt.xlabel(columns[i])
plt.ylabel("Result")
plt.show
我尝试使用子图来制作散点图,但它给了我这个错误
IndexError Traceback (most recent call last)
/var/folders/pn/ly3sp5n508v11pnffllvyl6h0000gn/T/ipykernel_34526/1242862654.py in <module>
18 fig, ax = plt.subplots(figsize=(10, 6))
19 for i in range(len(columns)-1):
---> 20 columns = df.columns[i]
21 ax.scatter(x = df[columns], y = df['Result'])
22 plt.xlabel(columns[i])
~/opt/anaconda3/lib/python3.9/site-packages/pandas/core/indexes/base.py in __getitem__(self, key)
5051 # GH#44051 exclude bool, which would return a 2d ndarray
5052 key = com.cast_scalar_indexer(key, warn_float=True)
-> 5053 return getitem(key)
5054
5055 if isinstance(key, slice):
IndexError: index 7 is out of bounds for axis 0 with size 7
1条答案
按热度按时间lnlaulya1#
您将列指定为df.columns[i],因此现在列的长度变为每列中的项数,而不是数据框中的列数。假设您有一个包含3列的数据框,即
price
、quantity
和amount
(按顺序)。使得
columns='price
,因此,现在len(columns)
(理想情况下应该是 Dataframe 中的列数)现在是字符串'price'
的长度,即5
(与期望值3
相反)。