如何仅打印Pandas DataFrame中最新追加的数据?
解决Pandas DataFrame追加后DOS窗口滚动问题的实用方案
嘿,我完全懂你的困扰——大体积的DataFrame全量打印在DOS命令提示符里会疯狂滚动,根本没法聚焦刚追加的最新数据。这里有几个针对性的解决方案,帮你精准查看更新内容:
方案1:只打印本次新增的数据
最直接的思路就是:每次循环里只输出你刚采集到的那部分数据,而不是整个大表。这样每次刷新窗口后,只会显示最新追加的内容,完全不会滚动。
示例代码:
import os import pandas as pd # 假设你的Database初始是空的DataFrame Database = pd.DataFrame() for i in range(len(Record_files)): # 替换成你实际的网页采集逻辑,生成本次新增的DataFrame df_new = your_scraping_function(Record_files[i]) # 追加到总表 Database = pd.concat([Database, df_new], ignore_index=True) # 清空DOS窗口 os.system('cls') # 打印本次新增的数据 print("=== 最新追加的数据 ===") with pd.option_context('display.max_rows', None, 'display.max_columns', None, 'expand_frame_repr', False): print(df_new)
方案2:打印DataFrame的最后N行
如果你想同时看到最近几次追加的内容(比如最新10条),可以用Pandas的tail(N)方法,只输出DataFrame末尾的指定行数:
示例代码:
import os import pandas as pd Database = pd.DataFrame() # 设定你想显示的最新行数 SHOW_LAST_N = 10 for i in range(len(Record_files)): df_new = your_scraping_function(Record_files[i]) Database = pd.concat([Database, df_new], ignore_index=True) os.system('cls') print(f"=== 最新{SHOW_LAST_N}条数据(共处理{i+1}/{len(Record_files)}个文件) ===") with pd.option_context('display.max_rows', None, 'display.max_columns', None, 'expand_frame_repr', False): print(Database.tail(SHOW_LAST_N))
额外优化:添加进度提示
在打印里加上当前处理的文件序号,能让你更清楚进度,结合上面的方案一起用体验更好,就像上面代码里的共处理{i+1}/{len(Record_files)}个文件那样。
这样调整后,每次刷新DOS窗口都只会显示你关心的最新内容,再也不会被全表滚动淹没啦!
内容的提问来源于stack exchange,提问作者naseefo
相关产品推荐
相关产品推荐

