假设我有数据框和向量,例如:
dataframe = DataFrame(Data1 = rand(10), Data2 = rand(10));
Data3 = rand(10)
Run Code Online (Sandbox Code Playgroud)
我想添加Data3到数据框,例如:
Data1 Data2 Data3
Float64 Float64 Float64
1 0.757345 0.903133 0.502133
2 0.294749 0.327502 0.323133
3 0.156397 0.427323 0.123133
Run Code Online (Sandbox Code Playgroud)
在 Python 中,我可以只df["Data3"] = Data3添加列,但在 Julia 数据框中,df[!,Data3] = Data3返回:
我也检查了这个解决方案,但这给了我:
如何在 Julia Dataframe 中添加向量作为新列?
Nil*_*dat 13
您就快到了,您正在寻找:
dataframe[!, :Data3] = Data3
Run Code Online (Sandbox Code Playgroud)
或者
dataframe[!, "Data3"] = Data3
Run Code Online (Sandbox Code Playgroud)
或者
dataframe.Data3 = Data3
Run Code Online (Sandbox Code Playgroud)
请注意,我在这里使用了Symbolor String- 这是一个索引操作,因此它需要您想要存储数据的[!, :Data3]行 ( !) 和列 ( ) 索引的标识符,而不是数据本身。:Data3
您将实际数据(随机数的 10 元素向量)绑定到变量Data3,因此使用dataframe[!, Data3]变量Data3(而不是使用 aSymbol或String值"Data3")相当于执行
dataframe[!, rand(10)]
Run Code Online (Sandbox Code Playgroud)
这意味着“我想访问!DataFrame 的所有行 ( ),以及由 10 个随机数标识的 10 列”。现在,按随机浮点数进行索引没有多大意义(应该dataframe[!, 0.532]返回什么?),这就是为什么您会收到您看到的错误 -setindex不接受 aVector{Float}作为参数。
关于您链接的 Discourse 线程,它非常旧,并且df["col"]语法很久以前就已被弃用。中的基本索引概念DataFrames是 aDataFrame是二维数据结构,因此应该通过 进行索引df[row_indices, col_indices]。
DataFrames支持多种指定有效索引的方法,这些方法太多,无法在此处详细介绍,但在此处的文档中列出了。