导入但未使用的系列错误Python

2024-10-01 13:44:29 发布

您现在位置:Python中文网/ 问答频道 /正文

import numpy as np
from pandas import Series, DataFrame
import pandas as pd
import matplotlib.pyplot as plt

iris_df = DataFrame()

iris_data_path = 'Z:\WORK\Programming\Python\irisdata.csv'

iris_df = pd.read_csv(iris_data_path,index_col=False,header=None,encoding='utf-8')

iris_df.columns = ['sepal length','sepal width','petal length','petal width','class']

print iris_df.columns.values
print iris_df.head()
print iris_df.tail()
irisX = irisdata[['sepal length','sepal width','petal length','petal width']]
print irisX.tail()
irisy = irisdata['class']
print irisy.head()
print irisy.tail()

colors = ['red','green','blue']
markers = ['o','>','x']

irisyn = np.where(irisy=='Iris-setosa',0,np.where(irisy=='Iris-virginica',2,1))

Col0 = irisdata['sepal length']
Col1 = irisdata['sepal width']
Col2 = irisdata['petal length']
Col3 = irisdata['petal width']

plt.figure(num=1,figsize=(16,10))
plt.subplot(2,3.1)
for i in range(len(colors)):
    xs = Col0[irisyn==i]
    xy = Col1[irisyn==i]
    plt.scatter(xs,xy,color=colors[i],marker=markers[i])
plt.legend( ('Iris-setosa', 'Iris-versicolor', 'Iris-virginica') )
plt.xlabel(irisdata.columns[0])
plt.ylabel(irisdata.columns[1])

plt.subplot(2,3,2)
for i in range(len(colors)):
    xs = Col0[irisyn==i]
    xy = Col2[irisyn==i]
    plt.scatter(xs,xy,color=colors[i],marker=markers[i])
plt.xlabel(irisdata.columns[0])
plt.ylabel(irisdata.columns[2])

plt.subplot(2,3,3)
for i in range(len(colors)):
    xs = Col0[irisyn==i]
    xy = Col3[irisyn==i]
    plt.scatter(xs,xy,color=colors[i],marker=markers[i])
plt.xlabel(irisdata.columns[0])
plt.ylabel(irisdata.columns[3])

plt.subplot(2,3,4)
for i in range(len(colors)):
    xs = Col1[irisyn==i]
    xy = Col2[irisyn==i]
    plt.scatter(xs,xy,color=colors[i],marker=markers[i])
plt.xlabel(irisdata.columns[1])
plt.ylabel(irisdata.columns[2])

plt.subplot(2,3,5)
for i in range(len(colors)):
    xs = Col1[irisyn==i]
    xy = Col3[irisyn==i]
    plt.scatter(xs,xy,color=colors[i],marker=markers[i])
plt.xlabel(irisdata.columns[1])
plt.ylabel(irisdata.columns[3])

plt.subplot(2,3,6)
for i in range(len(colors)):
    xs = Col2[irisyn==i]
    xy = Col3[irisyn==i]
    plt.scatter(xs,xy,color=colors[i],marker=markers[i])
plt.xlabel(irisdata.columns[2])
plt.ylabel(irisdata.columns[3])
plt.show()

这是霍华德·班迪的《定量技术分析》一书中的代码。问题是,它给我的错误,即使我把它打出来的完全像在书上。在

我仍然得到导入的系列,但未使用和未定义的名称irisdata errors/warnings。在

在控制台中:

代码:

^{pr2}$

显然,这个程序没有运行。在

我在Python2.7中使用spyder。这就是他在书中使用的平台。在

谢谢你的任何见解。在


Tags: columnsirisdfpltwidthlengthprintcolors
1条回答
网友
1楼 · 发布于 2024-10-01 13:44:29

好吧,Python没有错。您导入了系列但从未使用过,这是一个不会导致崩溃的警告。崩溃的发生是因为您正在取消对变量irisdata的引用,该变量以前从未定义过。(在您的代码中使用Ctrl+f irisdata并查看一下)根据您的代码,irisdata可能需要包含{}的解析数据,不是吗?所以您需要将其解析出来并将其分配给irisdata。见this post

例如

import csv
...
irisdata = list(csv.reader(open(iris_data_path, 'rb')))

相关问题 更多 >