我正在尝试运行一个小的python代码进行数据挖掘并获得跟踪错误。
错误:
File "prediction.py", line 10
data=pd.read_csv(file_name)
^
IndentationError: expected an indented block
我是初学者请帮忙。 我的代码:
# Required Packages
import csv
import sys
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
from sklearn import datasets, linear_model
# Function to get data
def get_data(file_name):
data = pd.read_csv(file_name)
flash_x_parameter = []
flash_y_parameter = []
arrow_x_parameter = []
arrow_y_parameter = []
for x1,y1,x2,y2 in zip(data[‘flash_episode_number’],data[‘flash_us_viewers’],data[‘arrow_episode_number’],data[‘arrow_us_viewers’]):
flash_x_parameter.append([float(x1)])
flash_y_parameter.append(float(y1))
arrow_x_parameter.append([float(x2)])
arrow_y_parameter.append(float(y2))
return flash_x_parameter,flash_y_parameter,arrow_x_parameter,arrow_y_parameter
# Function to know which Tv show will have more viewers
def more_viewers(x1,y1,x2,y2):
regr1 = linear_model.LinearRegression()
regr1.fit(x1, y1)
predicted_value1 = regr1.predict(9)
print predicted_value1
regr2 = linear_model.LinearRegression()
regr2.fit(x2, y2)
predicted_value2 = regr2.predict(9)
#print predicted_value1
#print predicted_value2
if predicted_value1 > predicted_value2:
print "The Flash Tv Show will have more viewers for next week"
else:
print "Arrow Tv Show will have more viewers for next week"
x1,y1,x2,y2 = get_data(‘input.csv’)
#print x1,y1,x2,y2
more_viewers(x1,y1,x2,y2)`
答案 0 :(得分:1)
缩进在python中很重要。
您收到错误是因为您需要在函数定义的第10行缩进:
# Function to get data
def get_data(file_name):
data = pd.read_csv(file_name)
flash_x_parameter = []
flash_y_parameter = []
...
答案 1 :(得分:1)
在python中你必须缩进任何嵌套块的代码,以便python可以识别属于全局代码,函数代码和任何内部块代码的内容:
def get_data(file_name):
data = pd.read_csv(file_name)
....
global code again
答案 2 :(得分:0)
这应该处理缩进问题。请阅读PEP8 [docs]的文档。
每个缩进级别使用4个空格。
延续线应垂直对齐包裹的元素 使用Python的隐含线连接括号,括号和 支撑,或使用悬挂缩进[6]。使用悬挂缩进时 应考虑以下因素;应该没有任何争论 第一行和进一步的缩进应该用于清楚 将自己区分为延续线。
# Required Packages
import csv
import sys
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
from sklearn
import datasets, linear_model
# Function to get data
def get_data(file_name):
data = pd.read_csv(file_name)
flash_x_parameter = []
flash_y_parameter = []
arrow_x_parameter = []
arrow_y_parameter = []
for x1, y1, x2, y2 in zip(data[‘flash_episode_number’], data[‘flash_us_viewers’], data[‘arrow_episode_number’], data[‘arrow_us_viewers’]):
flash_x_parameter.append([float(x1)])
flash_y_parameter.append(float(y1))
arrow_x_parameter.append([float(x2)])
arrow_y_parameter.append(float(y2))
return flash_x_parameter, flash_y_parameter, arrow_x_parameter, arrow_y_parameter
# Function to know which Tv show will have more viewers
def more_viewers(x1, y1, x2, y2):
regr1 = linear_model.LinearRegression()
regr1.fit(x1, y1)
predicted_value1 = regr1.predict(9)
print predicted_value1
regr2 = linear_model.LinearRegression()
regr2.fit(x2, y2)
predicted_value2 = regr2.predict(9)
# print predicted_value1# print predicted_value2
if predicted_value1 > predicted_value2:
print "The Flash Tv Show will have more viewers for next week"
else :
print "Arrow Tv Show will have more viewers for next week"
x1, y1, x2, y2 = get_data(‘input.csv’)# print x1, y1, x2, y2
more_viewers(x1, y1, x2, y2)