如何让pd.read_clipboard()重运行时保留原始输出而非读取新剪贴板内容?
解决
pd.read_clipboard()重运行读取剪贴板最新内容的问题 以下是几个实用的解决办法:
保存数据到本地文件,后续直接读取
第一次读取剪贴板数据后,立刻将DataFrame保存为CSV、Excel或Pickle文件,之后重运行单元格时直接从文件加载,彻底摆脱剪贴板依赖:import pandas as pd # 首次读取并保存(分别复制三个表格后依次运行) df = pd.read_clipboard() df.to_csv('table1.csv', index=False) df1 = pd.read_clipboard() df1.to_csv('table2.csv', index=False) df2 = pd.read_clipboard() df2.to_csv('table3.csv', index=False) # 后续重运行时直接读取文件 df = pd.read_csv('table1.csv') df1 = pd.read_csv('table2.csv') df2 = pd.read_csv('table3.csv')将数据转为静态结构,硬编码到代码中
第一次读取后,把DataFrame转换成字典或列表形式,之后直接用这些静态数据创建DataFrame,完全不需要再访问剪贴板:import pandas as pd # 首次读取后打印数据结构(复制表格后运行) df = pd.read_clipboard() print(df.to_dict('list')) # 输出可直接复用的字典格式 # 后续重运行时用静态数据构建DataFrame df = pd.DataFrame({ '列名A': [1, 2, 3, 4], '列名B': ['a', 'b', 'c', 'd'] }) # df1和df2执行同样操作Jupyter环境下使用魔法命令缓存变量
如果用Jupyter Notebook/Lab,可以用%store魔法命令缓存变量,内核重启后也能恢复:import pandas as pd # 首次读取并缓存(复制表格后运行) df = pd.read_clipboard() %store df df1 = pd.read_clipboard() %store df1 df2 = pd.read_clipboard() %store df2 # 后续重运行或重启内核后加载缓存 %store -r df %store -r df1 %store -r df2
内容的提问来源于stack exchange,提问作者Mohamad Osama
相关产品推荐
相关产品推荐

