Python 我可以在while循环中以输出形式显示数据帧吗?

Python 我可以在while循环中以输出形式显示数据帧吗?,python,pandas,dataframe,while-loop,Python,Pandas,Dataframe,While Loop,我正试图编写一个小型python程序来管理sql数据库中的表。我的一个函数是查询数据库,并将其存储在数据帧中,然后以输出格式显示数据帧。此函数本身运行良好,但当它置于while循环中时,它不会显示输出,因为循环仍在运行 运行下面的命令将以通常的干净数据帧格式输出df def show_table(x,k={}): mydb=connect(k.get("a_p"), k.get("h"), k.get("u"), k.get("p"), k.get("db")) try:

我正试图编写一个小型python程序来管理sql数据库中的表。我的一个函数是查询数据库,并将其存储在数据帧中,然后以输出格式显示数据帧。此函数本身运行良好,但当它置于while循环中时,它不会显示输出,因为循环仍在运行

运行下面的命令将以通常的干净数据帧格式输出df

def show_table(x,k={}):
    mydb=connect(k.get("a_p"), k.get("h"), k.get("u"), k.get("p"), k.get("db"))
    try:
        quack = pd.read_sql('SELECT * FROM '+str(x), mydb)
    except mysql.connector.Error as e:
        print("An error occured: {}".format(e))
    finally:
        if (mydb.is_connected()):
            mydb.close()
    return quack
show_table(stock_main,sql)
当放置在while循环中时,它将不会输出

i=True
while i != "":
    i = input("select table")
    if i in tables:
        show_table(i,sql)
    else:
        print(False)
如果我为show_table分配一个变量,然后打印它,它将打印出表,但不会以干净的dataframe输出格式打印,然后继续循环

就用这个:

from IPython.display import display, HTML
df = pd.DataFrame({'col1': [1,2,3], 'col2': [3,4,5]})
i = 0
while i!=2:
    i+=1
    display(HTML(df.to_html()))
只要用这个:

from IPython.display import display, HTML
df = pd.DataFrame({'col1': [1,2,3], 'col2': [3,4,5]})
i = 0
while i!=2:
    i+=1
    display(HTML(df.to_html()))