Python 熊猫能否同时写入同一个CSV文件?
我错误地让两个脚本同时运行,将熊猫数据帧分块写入同一个CSV文件。由于CSV文件应该被附加,脚本本身不会阻止写入CSV文件(如果它已经存在)。直到太晚了我才赶上 有点像这样: script1.pyPython 熊猫能否同时写入同一个CSV文件?,python,pandas,Python,Pandas,我错误地让两个脚本同时运行,将熊猫数据帧分块写入同一个CSV文件。由于CSV文件应该被附加,脚本本身不会阻止写入CSV文件(如果它已经存在)。直到太晚了我才赶上 有点像这样: script1.py for i, chunk in enumerate(datachunks): do something result_df.to_csv('csvfile.csv') (in write mode for the 1st chunk, append mode for the
for i, chunk in enumerate(datachunks):
do something
result_df.to_csv('csvfile.csv') (in write mode for the 1st chunk, append mode for the next chunks)
for i, chunk in enumerate(datachunks2):
do something
result_df.to_csv('csvfile.csv') (in write mode for the 1st chunk, append mode for the next chunks)
# should have been csvfile2.csv
script2.py
for i, chunk in enumerate(datachunks):
do something
result_df.to_csv('csvfile.csv') (in write mode for the 1st chunk, append mode for the next chunks)
for i, chunk in enumerate(datachunks2):
do something
result_df.to_csv('csvfile.csv') (in write mode for the 1st chunk, append mode for the next chunks)
# should have been csvfile2.csv
由于需要处理的数据量很大,每个脚本大约需要12个小时才能执行,我认为将CSV文件分成两部分会更快,这样我就可以得到每个脚本应该给出的输出。这应该行得通——除非我在文件中有意外的重复项,甚至是没有写入的行
如果相关的话,两个脚本都完成了,没有任何错误
在这个
csvfile.csv
中是否有重复/丢失数据的可能?我决定重新运行脚本并比较输出。这似乎不太可能——我丢失了很多行。数据没有写入文件的可能性可能更小,而文本被交错的可能性更大。听起来像是一团糟。@Todd每个CSV文件都有一个对应的user
列,我知道哪些用户应该由哪个脚本处理。交错不应该是个问题,但是丢失/重复的数据会造成问题。如果我100%确定没有丢失/重复的数据,我才能使用此文件,因为两个脚本都完成了所有数据块的编写,没有任何错误。什么是datachunks、file、pandas dataframe、numpy array?@irene您有识别和删除重复数据的策略吗?时间戳?我建议使用sqlite Db以您想要的方式写入数据,然后在退出脚本时将其导出到CSV。很抱歉听到@irene。也许你可以打电话给它,看看他们是否备份了系统上的数据,是否可以恢复你的文件,或者你有。。它是什么。。时间胶囊..最后已知的良好配置。。。不管他们叫什么,为承载数据的系统打开它,在数据被屏蔽之前,有一个状态可以恢复到系统中。@Todd,谢天谢地,这不是那么严重。所有的文件都在我的本地,所以没有它的联系,并已生成正确的文件。我的案例应该作为对其他想做同样事情的人的警告。我也曾渴望成为一个警示故事。