[英]to_csv is not writing the updated DataFrame
我正在導入一個csv文件作為pandas DataFrame。 然后更新該DataFrame,我試圖通過覆蓋該文件將該信息寫回到原始csv文件。 代碼完成后,我可以看到文件保存時間已更新,因此它似乎已保存了新版本。 但是,當我打開文件時,沒有任何改變。 我已經運行了print語句,以確保DataFrame的值實際上已經被更新並且它們看起來是正確的。 為什么to_csv不發送更新的DataFrame?
self.site_data=pandas.read_csv("site_data.csv",index_col=0, keep_default_na=False)
self.site_data.loc[location,"ADDRESS"] = self.location_details["site_address"]
print(self.site_data.loc[location,"ADDRESS"])
self.site_data.to_csv("site_data.csv", encoding="latin")
因此,問題比我想象的要深得多,因此,原因未在我發布的代碼中得到體現,但值得慶幸的是,這很容易解決。 我的程序中有多個類,其中兩個創建對象
self.site_data=pandas.read_csv("site_data.csv",index_col=0, keep_default_na=False)
初始化時。 這是一個示例,盡管這不是實際的代碼:
from example_1 import mass_analysis
from example_2 import mass_import
class mass_analysis:
def __init__(self):
self.site_data=pandas.read_csv("site_data.csv",index_col=0, keep_default_na=False)
class mass_import:
def __init__(self):
self.site_data=pandas.read_csv("site_data.csv",index_col=0, keep_default_na=False)
class mass_main_ui:
def __init__(self):
mass_analysis=mass_analysis()
mass_import=mass_import()
因此,在初始化mass_main_ui時,兩個類都同時訪問文件並在該變量中保存相同的數據。 當第一個將數據寫回到文件中時,文件/變量的另一個實例仍處於“打開”狀態,因此當該實例寫回到文件時,它沒有第一個的更改並覆蓋了所有內容它做到了。 解決方法是刪除:
mass_analysis=mass_analysis()
和
mass_import=mass_import()
從初始化開始,而是在程序中的其他函數中在需要時調用該類,例如:
mass_import().get_new_data(source_file)
def get_new_data(source_file):
print("This works")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.