簡體   English   中英

Pandas.read_excel 保存后使用舊數據

[英]Pandas.read_excel using old data after save

我有一個很長的 python 代碼,它使用 Pandas 與 excel 接口。 我的代碼打開文件,運行一些 VBA 更新工作表中的表,保存文件,然后將該表讀取到 python 中的數據幀。 一切運行順利,除了數據框包含文件打開時的數據,而不是執行更改和保存之后的數據。 這顯然是一個問題,我已經在第二台計算機上復制了它。 它們都運行 Windows 10、Office 2013、Python 3.5.2 和 Pandas 0.18.1。 關於如何強制 Pandas 在打開(保存)文件中使用當前數據的任何想法? 提前致謝!

這是我運行的一個重復問題的簡單測試:

  1. 在一個新的 Excel 文件(在整個測試過程中保持打開狀態)中,在 Sheet1 上,我列出了從 A1 開始向下的數字 1 到 26,以及從​​ B1 向下的大寫字母 A 到 Z,除了小寫的 m 外。
  2. 我將此文件作為“Test.xlsx”保存到外部驅動器“I:”上。
  3. 我寫了一個簡單的python代碼:

     import pandas as pd fpth = r'I:\\Test.xlsx' df = pd.read_excel(fpth,"Sheet1") print(df)

    返回:

     1 A 0 2 B 1 3 C 2 4 D 3 5 E 4 6 F 5 7 G 6 8 H 7 9 I 8 10 J 9 11 K 10 12 L 11 13 m 12 14 N 13 15 O 14 16 P 15 17 Q 16 18 R 17 19 S 18 20 T 19 21 U 20 22 V 21 23 W 22 24 X 23 25 Y 24 26 Z
  4. 手動將小寫 m 更改為大寫。

  5. 保存工作簿。
  6. 再次運行python代碼。

它返回舊的數據幀,帶有小寫的 m,而不是我更新和保存的版本。

這個簡單的解決方法對我有好處。 我有時在大文件上遇到同樣的問題 - 它不一致。 (windows 10,office365,定期更新,本地C盤)。

  1. 在 Excel 中保存文件后,使用 Windows 文件資源管理器將文件復制到不同的名稱,例如“Test - Copy.xlsx”
  2. 在python中,打開副本
import pandas as pd

fpth = r'I:\Test - Copy.xlsx'
df =  pd.read_excel(fpth,"Sheet1")
print(df)

不是一個很好的解決方案,但是您的問題和 5 年前的類似問題沒有得到解答,所以我希望這對某人有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM