我希望根据烧瓶应用程序上的用户输入创建动态图.但是我得到以下错误:字符串参数预期,得到'字节'
如果我使用io.BytesIO(),我没有收到此错误,但我没有得到test.html上的情节
from flask import Flask
from flask import render_template
import matplotlib.pyplot as plt
import io
import base64
app = Flask(__name__)
@app.route('/plot')
def build_plot():
img = io.StringIO()
y = [1,2,3,4,5]
x = [0,2,1,3,4]
plt.plot(x,y)
plt.savefig(img, format='png')
img.seek(0)
plot_url = base64.b64encode(img.getvalue())
return render_template('test.html', plot_url=plot_url)
if __name__ == '__main__':
app.debug = True
app.run()
Run Code Online (Sandbox Code Playgroud)
的test.html
<!DOCTYPE html>
<html>
<title> Plot</title>
<body>
<img src="data:image/png;base64, {{ plot_url }}">
</body>
</html>
Run Code Online (Sandbox Code Playgroud) 我有两个数据帧:
df1 = row1;row2;row3
df2 = row4;row5;row6;row2
Run Code Online (Sandbox Code Playgroud)
我希望我的输出数据帧只包含df1中唯一的行,即:
df_out = row1;row3
Run Code Online (Sandbox Code Playgroud)
我如何最有效地获得这个?
这段代码做我想要的,但使用2个for循环:
a = pd.DataFrame({0:[1,2,3],1:[10,20,30]})
b = pd.DataFrame({0:[0,1,2,3],1:[0,1,20,3]})
match_ident = []
for i in range(0,len(a)):
found=False
for j in range(0,len(b)):
if a[0][i]==b[0][j]:
if a[1][i]==b[1][j]:
found=True
match_ident.append(not(found))
a = a[match_ident]
Run Code Online (Sandbox Code Playgroud)