Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在工作存储器中存储数据帧_Python_Pandas_Binaryfiles - Fatal编程技术网

Python 在工作存储器中存储数据帧

Python 在工作存储器中存储数据帧,python,pandas,binaryfiles,Python,Pandas,Binaryfiles,有没有办法获取数据帧,比如 df = pd.DataFrame({'a':[1,2,3], 'b':[4,5,6]}) 并将其作为二进制对象存储在临时内存中,然后用 open(df, 'rb') 因此,与其做类似的事情 open('/home/user/data.csv', 'rb') 代码应该是 df = pd.DataFrame({'a':[1,2,3], 'b':[4,5,6]}) df_rb = *command to store in temp working memory a

有没有办法获取数据帧,比如

df = pd.DataFrame({'a':[1,2,3], 'b':[4,5,6]})
并将其作为二进制对象存储在临时内存中,然后用

open(df, 'rb')
因此,与其做类似的事情

open('/home/user/data.csv', 'rb')
代码应该是

df = pd.DataFrame({'a':[1,2,3], 'b':[4,5,6]})

df_rb = *command to store in temp working memory as binary readable*

open(df_rb, 'rb')
熊猫有方法:

从文档中:

将对象Pickle(序列化)到文件

然后使用

从文档中:

从文件加载pickled对象(或任何对象)

熊猫有方法:

从文档中:

将对象Pickle(序列化)到文件

然后使用

从文档中:

从文件加载pickled对象(或任何对象)


您可以将其pickle到内存中的io.BytesIO对象


您可以将其pickle到内存中的io.BytesIO对象


查看Python的
pickle
模块:我已经尝试过了,但是我无法用它提取文件路径。所以我需要对它进行pickle,获取一个文件路径(不指定文件路径),然后与open一起使用。有什么方法可以做到这一点吗?只需将数据帧转储到内存中的字节流(使用例如
BytesIO
)而不是文件中。您想解决什么问题?我正在尝试解决Django REST API问题;我发布了一个关于这一点的深入问题,但我认为这太深入了。这将提供一个简单的解决方案,而无需更改django api源代码查看Python的
pickle
模块:我尝试过这个模块,但我无法用它提取文件路径。所以我需要对它进行pickle,获取一个文件路径(不指定文件路径),然后与open一起使用。有什么方法可以做到这一点吗?只需将数据帧转储到内存中的字节流(使用例如
BytesIO
)而不是文件中。您想解决什么问题?我正在尝试解决Django REST API问题;我发布了一个关于这一点的深入问题,但我认为这太深入了。这将提供一个简单的解决方案,而无需更改DjangoAPI源代码。“/dummy.filetype”在任何计算机上都能工作吗?我的意思是,有人下载我编写的函数,运行该函数(将文件写入“./file”),并获得一些“目录不存在”错误,是否存在任何风险?看起来不可能是这样,我想它可以在任何机器上运行。您总是可以处理pickle在始终存在的目录中写入的情况。“/dummy.filetype”在任何计算机上都能工作吗?我的意思是,有人下载我编写的函数,运行该函数(将文件写入“./file”),并获得一些“目录不存在”错误,是否存在任何风险?看起来不可能是这样,我想它可以在任何机器上运行。您总是可以处理pickle在始终存在的目录中写入的情况。这很有帮助。。df.to_pickle将关闭io对象,因此我更喜欢使用
pickle.dump
,这样我可以控制自己何时关闭它。@NickBrady-thanx。这很有帮助。。不过df.to_pickle会关闭io对象,所以我更喜欢使用
pickle.dump
,这样我可以控制自己何时关闭它。@NickBrady-thanx。
df.to_pickle("./dummy.pkl")
unpickled_df = pd.read_pickle("./dummy.pkl")
import pandas as pd
import pickle, io
df = pd.DataFrame({'a':[1,2,3], 'b':[4,5,6]})
f = io.BytesIO()
pickle.dump(df,f)
f.seek(0)    # necessary to start reading at the beginning of the "file"
dg = pickle.load(f)

In [48]: dg==df
Out[48]: 
      a     b
0  True  True
1  True  True
2  True  True