【请教】如何将dataframe转换为julia的2维数组?


#1

通过第3方包(比如DataFrames.jl等)可以很方便地将1个n行×m列的2维数组转换为dataframe,但是,如何将dataframe转换为array呢?网上搜到了TimeSeriesIO.jl,但由于未更新,用不了。
请问各位大神,有什么办法能实现呢?
非常感谢!


#2

把DataFrame转换为数组会丢失很多信息。
不过如果你一定要转换的话,直接convert就好了

julia> df=DataFrame([1:3,4:6],[:A,:B])
3×2 DataFrame
│ Row │ A     │ B     │
│     │ Int64 │ Int64 │
├─────┼───────┼───────┤
│ 1   │ 1     │ 4     │
│ 2   │ 2     │ 5     │
│ 3   │ 3     │ 6     │

julia> arr=convert(Array,df)
3×2 Array{Int64,2}:
 1  4
 2  5
 3  6

#3

感谢大师回复!
之所以尝试将dataframe格式转换回2维数组,本意是建立一个Excel与Julia数据交互的桥梁。
1)关于Excel2Julia,大师在“[【请教】julia如何解析来自剪贴板的EXCEL复制的表格 ]“”(【请教】julia如何解析来自剪贴板的EXCEL复制的表格)“”http://discourse.juliacn.com/t/topic/1134/6)给了完美的解决方案;
2)关于Julia2Excel,如何在julia里对dataframe数据进行处理,复制至剪贴板,从而在excel端里直接粘贴为表格呢?
我试过,利用clipboard(dataframe数据)复制到剪贴板,在excel里粘贴的时候,里面带有很多“|”竖线,导致在Excel非常不好分析。
一言简之,如何将julia的数据(dataframe或array)进行处理,以便在excel里看可粘贴为2维数组呢?
再次致谢!


#4

这个类似excel2julia的过程,往剪贴板里放入excel可以接受的表格格式就行了(CSV、XML等)。具体看那个帖子楼下对剪贴板格式的介绍


#5

OK,收到,谢谢!