如何在Julia中定义DataFrames的空数组?

时间:2019-07-15 19:00:19

标签: arrays dataframe initialization julia defaultifempty

我想生成一个空的数据帧数组,稍后将在代码中填充它,但是我还没有弄清楚该怎么做。任何帮助将不胜感激!

我尝试了定义空数组的标准方法。

julia> df = Array{DataFrame}(undef,10)
10-element Array{DataFrame,1}:
 #undef
 #undef
 #undef
 #undef
 #undef
 #undef
 #undef
 #undef
 #undef
 #undef

julia> println(typeof(df[1]))
ERROR: UndefRefError: access to undefined reference
Stacktrace:
 [1] getindex(::Array{DataFrame,1}, ::Int64) at ./array.jl:729
 [2] top-level scope at none:0

我希望typeof(df [1])表示DataFrame,但是它失败并显示错误消息。

2 个答案:

答案 0 :(得分:4)

对于您所理解的“空”定义,您所拥有的是正确的。 获得第一个结果后,您就可以像往常一样继续用数据框填充它。 它确实是一个DataFrame数组,因为如果您尝试为其元素分配任何其他类型,则会收到错误消息。

请注意,“一个空的数据帧数组” 与“一个(非空的)空数据帧数组”不同

如果您真正想要的是后者,那么Bogumil的答案就是要走的路。

答案 1 :(得分:3)

尝试:

df_vector = [DataFrame() for _ in 1:10]

map(_ -> DataFrame(), 1:10)