Sev*_*uls 2 julia dataframes.jl
因此,我从 csv 加载了两个数据集,然后使用以下命令合并它们leftjoin
:
using CSV
using DataFrames
using CodecZstd
df1 = CSV.read(joinpath(root, "data", "raw", "df1.csv"), DataFrame)
df2 = CSV.read(joinpath(root, "data", "raw", "df2.csv"), DataFrame)
merged = leftjoin(df1, df2, on=:id)
Run Code Online (Sandbox Code Playgroud)
现在我想将合并的数据帧作为.zst
现在我想将合并的数据帧作为压缩文件(Zstandard 压缩)
我成功地首先写入,.csv
然后读取,然后再次写入.zst
,但是有没有办法直接将 a 转换DataFrame
为字节数组以便能够保存到磁盘?
要准确遵循您的问题,您可以执行以下操作:
\nusing CSV, DataFrames, CodecZstd\nfout = ZstdCompressorStream(open("z.zst","w"))\ndf = DataFrame(a='a':'h', b=1:8)\nCSV.write(df ,fout)\nclose(fout)\n
Run Code Online (Sandbox Code Playgroud)\n现在这可以读作:
\njulia> CSV.read(ZstdDecompressorStream(open("z.zst")), DataFrame)\n8\xc3\x972 DataFrame\n Row \xe2\x94\x82 a b\n \xe2\x94\x82 String1 Int64\n\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xbc\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\n 1 \xe2\x94\x82 a 1\n 2 \xe2\x94\x82 b 2\n 3 \xe2\x94\x82 c 3\n 4 \xe2\x94\x82 d 4\n 5 \xe2\x94\x82 e 5\n 6 \xe2\x94\x82 f 6\n 7 \xe2\x94\x82 g 7\n 8 \xe2\x94\x82 h 8\n
Run Code Online (Sandbox Code Playgroud)\n其他合理的选择是使用 Apache Arrow 来编写 DataFrame 而不是 CSV。压缩将以与上述相同的方式进行。
\n 归档时间: |
|
查看次数: |
43 次 |
最近记录: |