Pandas to_html导出HTML时无法显示追加数据行的问题求助
问题分析与解决方案
我一眼就看出问题出在哪了——Pandas的append()方法不会原地修改原DataFrame,它会返回一个包含新增行的新DataFrame对象,你没把这个返回值重新赋值给df_test,所以原来的df_test始终是空的,导出HTML自然看不到新增的行。
修正后的代码
import pandas as pd df_test = pd.DataFrame(columns=['TEST1', 'TEST2']) # 把append的返回值重新赋值给df_test df_test = df_test.append({'TEST1':11, 'TEST2':22}, ignore_index=True) df_test = df_test.append({'TEST1':33, 'TEST2':44}, ignore_index=True) return df_test.to_html()
补充说明
另外要提一句,从Pandas 2.0开始,append()方法已经被标记为弃用了,官方推荐用pd.concat()来替代,这样更高效也更符合现代Pandas的用法,给你个替代方案:
import pandas as pd df_test = pd.DataFrame(columns=['TEST1', 'TEST2']) # 用concat追加数据 new_rows = pd.DataFrame([{'TEST1':11, 'TEST2':22}, {'TEST1':33, 'TEST2':44}]) df_test = pd.concat([df_test, new_rows], ignore_index=True) return df_test.to_html()
这样修改后,导出的HTML页面就能正确显示所有新增的数据行了。
内容的提问来源于stack exchange,提问作者Arno Claes
相关产品推荐
相关产品推荐

