Python 在.CSV文件中保存/加载数据的最佳方法
我正在尝试将一个包含2个Python 在.CSV文件中保存/加载数据的最佳方法,python,pandas,csv,numpy,numeric,Python,Pandas,Csv,Numpy,Numeric,我正在尝试将一个包含2个ndarrays和一个int的元组列表保存并加载到.csv文件中 在我当前的实现中,当我保存并加载列表l时,恢复的列表中出现了一些错误,顺序为10^-10。是否有更精确地保存和恢复值的方法?我也希望大家能对我的代码发表意见。谢谢 这就是我现在拥有的: def save_l(l,path): tup=() for X in l: u=X[0].reshape(784*9) v=X[2]*np.ones(1) w
ndarrays
和一个int
的元组列表保存并加载到.csv
文件中
在我当前的实现中,当我保存并加载列表l时,恢复的列表中出现了一些错误,顺序为10^-10
。是否有更精确地保存和恢复值的方法?我也希望大家能对我的代码发表意见。谢谢
这就是我现在拥有的:
def save_l(l,path):
tup=()
for X in l:
u=X[0].reshape(784*9)
v=X[2]*np.ones(1)
w=np.concatenate((u,X[1],v))
tup+=(w,)
L=np.row_stack(tup)
df=pd.DataFrame(L)
df.to_csv(path)
def load_l(path):
df=pd.read_csv(path)
L=df.values
l=[]
for v in L:
tup=()
for i in range(784):
tup+=(v[9*i+1:9*(i+1)+1],)
T=np.row_stack(tup)
Q=v[9*784+1:10*784+1]
i=v[7841]
l.append((T,Q,i))
return(l)
您遇到的问题可能是由于在保存和加载期间缺少.csv文件保护 使用上下文管理器是确保文件在所有数据完全保存/加载之前处于锁定状态的一种好方法。这样,在系统因任何原因停止执行时,您不会丢失任何数据,因为所有结果都会在可用时保存 我建议将
与
-一起使用,它的主要用途是异常安全地清理内部使用的对象(在本例中是.csv)。换句话说,with确保关闭文件、释放锁、恢复上下文等
with open("myfile.csv", "a") as reference: # Drop to csv w/ context manager
df.to_csv(reference, sep = ",", index = False) # Same goes for read_csv
# As soon as you are here, reference is closed
如果您尝试此操作但仍然看到错误,则这不是由于保存/加载问题造成的。
csv
是一个文本文件。浮点值将被舍入或剪裁。如果需要保持精度,请不要使用此格式ndarray
具有np.save
和np.load
,这将保存二进制数据,即内存中使用的字节。