如何将pandas数据帧发送到flask_restful api



现在我一次向flask_restfulapi发送一个项目,并将结果附加到数据帧。

如果api可以处理整个数据帧,而不是逐行处理,那么它会更快。

这可能吗?

这是我正在做的一个非常基本的模型。

这个api取人名,并返回一句话:"你的名字是">

from flask import Flask
from flask_restful import Resource, Api, reqparse
app = Flask(__name__)
api = Api(app)
class my_api(Resource):

def __init__(self):
self.reqparse = reqparse.RequestParser()
self.reqparse.add_argument('name', type = str, default='')

super(my_api, self).__init__()
def get(self):
args = self.reqparse.parse_args()
name =  args['name']

return f'Your name is {name}'
api.add_resource(my_api, '/')
if __name__ == '__main__':
app.run(debug=True)

现在我将在我的数据帧上使用api:

df = pd.DataFrame({'name':['John','Jim','Mary','Michael']})
print(df)
name
0     John
1      Jim
2     Mary
3  Michael

# list to save api results
results = []
# send each name in the column to the api
for name in df['name']:
# api call
api_data = send name to api

results.append(api_data)
# attach results to dataframe
df['results'] = results

因此,按照我实际的flask api的设置方式,如果我得到完整的数据帧,而不是一行接一行,速度会快得多。此外,数据帧比上面的模型更大。还有更多的列和行。

有什么建议吗?

您可以将数据帧转换为JSON并将其发送到API。您必须配置API以接受解析JSON。通过这种方式,您可以同时发送完整的数据。此外,不建议对类名使用snake_case

相关内容

  • 没有找到相关文章

最新更新