gpt4 book ai didi

dataframe - 如何使用 Julia、Pluto.jl 和 PlutoUI.jl 的 FilePicker 元素读取上传的 CSV 文件

转载 作者:行者123 更新时间:2023-12-04 00:54:05 29 4
gpt4 key购买 nike

我正在尝试使用 PlutoUI 库的 Filepicker 元素

md"""上传要使用的逗号分隔值 (.csv) 文件:$(@bind user_csv FilePicker()) """

允许用户上传 CSV 文件进行处理。遗憾的是,未检测到数据类型,数据表示为一维 Int64 数组:

Dict("name"=>"mtg_binder.csv", "data"=>Int64[ 81 117 97 110 116 105 116 121 44 78 97 109 101 44 83 105 109 112 108 101 95 78 97 109 101 44 83 101 116 44 67 97 114 100 95 78 117 109 98 101 53 52 51 46 49 57 34 44 13 10], "type"=>"")

那么,我该如何处理/将 Int64 数组转换成我可以插入 Dataframe 的东西?

我尝试过的一些事情:

如果我执行 write(csv_path, user_csv["data"]) csv 文件保存成功,但我无法使用 CSV.File(open(read, csv_path )) |> DataFrame; 在每行数据之间没有空行(没什么大不了的),并且 ArgumentError: Symbol name may not contain\0 错误。第二个问题我可以使用normalizenames=true,但是数据变成了炒鸡蛋,无法使用。

我也尝试过使用 StringEncodings 编码为 UTF-8 和 UTF-16,但没有成功——它仍然是炒鸡蛋。

帮忙吗?

最佳答案

这在您的用例中是否有效?

UInt8.(user_csv["data"]) |> IOBuffer |> CSV.File |> DataFrame

这通过将 Int64 转换为字节 (UInt8) 来实现。从那里,可以将用户数据放入 IOBuffer 中,然后将其提供给 CSV 解析器。

您发布的数据似乎已被截断,因此我无法对其进行测试。但是在合成数据(包括 UTF8 字符)上,这似乎适用于我的系统。这是 Pluto 之外的示例:

julia> d = [207,128,44,32,98,10,49,44,32,50,10]
11-element Array{Int64,1}:
207
128
44
...

julia> using CSV, DataFrames

julia> UInt8.(d) |> IOBuffer |> CSV.File |> DataFrame
1×2 DataFrame
│ Row │ π │ b │
│ │ Int64 │ Int64 │
├─────┼───────┼───────┤
│ 1 │ 1 │ 2 │

关于dataframe - 如何使用 Julia、Pluto.jl 和 PlutoUI.jl 的 FilePicker 元素读取上传的 CSV 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64072033/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com