python - Pandas 在 BytesIO 中将 df 存储到 csv

标签 python pandas io

我想将 df 的输出存储到 csvBytesIo() 内存对象中(不是 StringIO) 然后压缩它,这是我的尝试:

import pandas as pd
import numpy as np
import io
import zipfile
df = pd.DataFrame(np.random.randn(100, 4), columns=list('ABCD'))
s_buf = io.BytesIO()
df.to_csv(s_buf)
s_buf.seek(0)
localfile= io.BytesIO()
zf = zipfile.ZipFile(localfile, mode="w",compression=zipfile.ZIP_DEFLATED)
zf.writestr(localfile, s_buf.read())
zf.close()
with open("D:/my_zip.zip", "wb") as f: # use `wb` mode
    f.write(zf.getvalue())

最佳答案

我认为这会有所帮助:-

import gzip
from io import BytesIO
import pandas as pd
import numpy as np

df = pd.DataFrame(np.random.randn(100, 4), columns=list('ABCD'))
b_buf = BytesIO()
with gzip.open(b_buf, 'wb') as f:
    f.write(df.to_csv().encode())
b_buf.seek(0)
with open("my_zip.zip", "wb") as f:
    f.write(b_buf.getvalue())

关于python - Pandas 在 BytesIO 中将 df 存储到 csv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56230229/

相关文章:

python - pickle 在做什么?

python - 在 sagemath 中定义函数的不同方式

python - Karatsuba 算法 - 我的实现错误

python - 如何使单词边界\b 在破折号上不匹配

java - 如何清除ServletOutputStream的内容?

pandas - 如何根据 Pandas 的值划分 Pandas 列?

python - 将 .csv 文件读取到 pandas 数据框并从换行符中识别数据部分

python - 停止 Pandas group by 中的处理循环

PHP:标准输出与 php://STDOUT

c++ - 如何改进我的类(class)以创建输出文件