3

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

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

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,但它失败并显示错误消息。

4

2 回答 2

7

尝试:

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

或者

map(_ -> DataFrame(), 1:10)
于 2019-07-15T19:05:25.617 回答
6

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

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

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

于 2019-07-15T19:19:25.757 回答