Dataframe 如何使用Julia,Pluto.jl&;读取上传的CSV文件;PlutoUI.jl';s文件选择器元素

Dataframe 如何使用Julia,Pluto.jl&;读取上传的CSV文件;PlutoUI.jl';s文件选择器元素,dataframe,csv,file-upload,julia,pluto.jl,Dataframe,Csv,File Upload,Julia,Pluto.jl,我正在尝试使用PlutoUI库的Filepicker元素 md”““上载逗号分隔值(.csv)文件以使用:$(@bind user\u csv FilePicker())”“” 允许用户上载CSV文件以进行处理。遗憾的是,未检测到数据类型,并且数据表示为一维Int64数组: Dict(“name”=>“mtg_binder.csv”,“data”=>Int64[81 117 97 110 116 116 121 44 78 97 109 101 44 83 109 112 108 101 95

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

md”““上载逗号分隔值(.csv)文件以使用:$(@bind user\u csv FilePicker())”“”

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

Dict(“name”=>“mtg_binder.csv”,“data”=>Int64[81 117 97 110 116 116 121 44 78 97 109 101 44 83 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 51 46 49 57 34 13 10],“type”=>”)

那么,我如何处理/转换Int64数组,使其成为可以推送到数据帧中的内容呢?

我尝试过的一些事情:

如果我执行
write(csv_path,user_csv[“data”])
csv文件成功保存,但我无法使用
csv.file(open(read,csv_path))|>DataFrame读回文件
不在包含数据的每行之间获取空行(不是什么大问题),并且
ArgumentError:Symbol name可能不包含\0
错误。对于第二个问题,我可以使用
normalizenames=true
,但是数据变成了炒鸡蛋,无法使用

我也尝试过使用字符串编码来编码UTF-8和UTF-16,但没有运气——它仍然是炒蛋


帮助?

这在您的用例中有效吗

UInt8.(user_csv["data"]) |> IOBuffer |> CSV.File |> DataFrame
其工作原理是将
Int64
s转换为字节(
UInt8
)。从那里,用户数据可以放入一个
IOBuffer
,该缓冲区可以馈送到CSV解析器

您发布的数据似乎已被截断,因此我无法对其进行测试。但在合成数据(包括UTF8字符)上,这似乎在我的系统上起作用。以下是冥王星之外的一个例子:

julia>d=[207128,44,32,98,10,49,44,32,50,10]
11元素数组{Int64,1}:
207
128
44
...
julia>使用CSV、数据帧
julia>UInt8.(d)|>IOBuffer |>CSV.File |>DataFrame
1×2数据帧
│ 一行│ π     │  B│
│     │ Int64│ Int64│
├─────┼───────┼───────┤
│ 1.│ 1.│ 2.│
您也可以使用TableIO。 以下内容适用于多种表格文件格式,包括CSV:(所有行在Pluto中都是单独的单元格):

using PlutoUI, TableIO, DataFrames

@bind f PlutoUI.FilePicker() # pick any supported file type

df = DataFrame(read_table(f); copycols=false)