我将一个从flask函数传递给另一个函数的列表,并且得到了这个值错误。
发送结束时的代码:
@app.route('/process', methods=['POST'])
def process():
name = request.form['name']
comment = request.form['comment']
wickets = request.form['wickets']
ga = request.form['ga']
ppballs = request.form['ppballs']
overs = request.form['overs']
score = [name,comment,wickets,ga,ppballs,overs]
results = []
results = eval_score(score)
print results
接收方结束:
def ml_model(data):
col = pd.DataFrame(data,columns=['runs','balls', 'wickets', 'ground_average', 'pp_balls_left', 'total_overs'])
predicted = predictor(col)
错误跟踪:
...
line 1598, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "/Users/sbk/guestbook/guestbook.py", line 26, in process
results = eval_score(score)
File "/Users/sbk/guestbook/eval_score.py", line 6, in eval_score
col = pd.DataFrame(data,columns=['runs','balls', 'wickets', 'ground_average', 'pp_balls_left', 'total_overs'])
File "/Users/sbk/anaconda2/lib/python2.7/site- packages/pandas/core/frame.py", line 385, in __init__
copy=copy)
File "/Users/sbk/anaconda2/lib/python2.7/site-packages/pandas/core/frame.py", line 533, in _init_ndarray
return create_block_manager_from_blocks([values], [columns, index])
File "/Users/sbk/anaconda2/lib/python2.7/site-packages/pandas/core/internals.py", line 4631, in create_block_manager_from_blocks
construction_error(tot_items, blocks[0].shape[1:], axes, e)
File "/Users/sbk/anaconda2/lib/python2.7/site-packages/pandas/core/internals.py", line 4608, in construction_error
Open an interactive python shell in this framepassed, implied))
请让我知道我哪里出错。
答案 0 :(得分:18)
只需更改
col = pd.DataFrame(data, columns=['runs','balls', 'wickets', 'ground_average', 'pp_balls_left', 'total_overs'])
的
col = pd.DataFrame([data], columns=['runs','balls', 'wickets', 'ground_average', 'pp_balls_left', 'total_overs'])
您希望[data]
pandas
了解它们是行。
简单说明:
a = [1, 2, 3]
>>> pd.DataFrame(a)
0
0 1
1 2
2 3
>>> pd.DataFrame([a])
0 1 2
0 1 2 3
答案 1 :(得分:2)
在使用回归系数(regressor.coeff_)制作数据帧时,我遇到了类似的问题,方括号给出了另一个错误,要求进行二维输入。如果出现此错误,请尝试在输入数组后附加[0],以便将值拉出。 例如: 数据[0]
答案 2 :(得分:1)
我遇到了类似的错误消息
传递值的形状为(68,1783),索引在数据框中暗示(68,68)
据我的猜测,我输入了数据ndarray的转置,就解决了问题
更改自
Features_Dataframe = pd.DataFrame(data=Features, columns=Feature_Labels) # here Features ndarray is 68*1783
收件人
Features_Dataframe = pd.DataFrame(data=Features.transpose(), columns=Feature_Labels) # Now Features array became 1783*68 i.e., 1783 rows and 68 columns