找出以下代码的错误:def manage(): data1 = pd.read_csv('酮病数据1.csv') data1 = data1.drop( ["牛号", "编号", "产犊日期", "首次酮病产后天数", "第二次酮病产后天数", "首次DHI产后天数", "产后第6天产量", "产后第7天产量", "产后第8天产量", "产后第9天产量", "产后第10天产量", "产后第11天产量", "产后第12天产量" , "产后第13天产量", "产后第14天产量", "产后第15天产量"], axis=1) data1.iloc[:, :] = data1.iloc[:, :].replace('--', NaN) # 没有产奶 所以为空 data1.iloc[:, :] = data1.iloc[:, :].replace(NaN, 0) with open("酮病数据1.csv") as csvfile: reader = csv.reader(csvfile) # 获取x轴坐标和y轴坐标 x = next(reader)[1:] print("x:", x) y = list(reader) print("y", y) # 绘制折线图 for i in range(len(y)): y[i] = [float(j) for j in y[i][1:]] # 绘制折线图 for i in range(len(y)): plt.plot(x, y[i])# 没删之前第9列为第一天产奶量 #plt.plot(x, y) plt.show()
时间: 2023-06-16 07:04:36 浏览: 94
代码中的错误在于使用了未定义的变量`NaN`。正确的写法应该是使用`numpy`库中定义的`np.nan`。正确的代码如下所示:
```python
import pandas as pd
import csv
import numpy as np
import matplotlib.pyplot as plt
def manage():
data1 = pd.read_csv('酮病数据1.csv')
data1 = data1.drop(["牛号", "编号", "产犊日期", "首次酮病产后天数", "第二次酮病产后天数", "首次DHI产后天数", "产后第6天产量", "产后第7天产量", "产后第8天产量", "产后第9天产量", "产后第10天产量",
"产后第11天产量", "产后第12天产量", "产后第13天产量", "产后第14天产量", "产后第15天产量"], axis=1)
data1.iloc[:, :] = data1.iloc[:, :].replace('--', np.nan) # 没有产奶 所以为空
data1.iloc[:, :] = data1.iloc[:, :].replace(np.nan, 0)
with open("酮病数据1.csv") as csvfile:
reader = csv.reader(csvfile)
# 获取x轴坐标和y轴坐标
x = next(reader)[1:]
print("x:", x)
y = list(reader)
print("y", y)
# 绘制折线图
for i in range(len(y)):
y[i] = [float(j) for j in y[i][1:]]
# 绘制折线图
for i in range(len(y)):
plt.plot(x, y[i])
plt.show()
```
阅读全文