如何在Julia的DataFrame中将向量添加为新列?
Julia DataFrame新增列的正确方法
错误原因
- 第一个
MethodError是因为你索引列时传入了向量变量Data3作为列名,而非字符串/符号类型的列名称,导致方法匹配失败。 - 第二个
ArgumentError是因为你使用了DataFrames.jl 1.0版本后已废弃的df[column]索引语法,新版要求用df[!, column]或df[:, column]进行列索引。
正确实现方式
以下几种写法都可以实现将Data3向量作为新列添加到原DataFrame中:
- 推荐的
!索引写法,直接修改原DataFrame无额外拷贝:
# 用Symbol作为列名 dataframe[!, :Data3] = Data3 # 也可以用字符串作为列名 dataframe[!, "Data3"] = Data3
- 更简洁的点语法,写法和Python类似:
dataframe.Data3 = Data3
- 可指定插入位置的
insertcols!方法,适合需要自定义列顺序的场景:
# 直接追加到最后一列 insertcols!(dataframe, :Data3 => Data3) # 插入到第2列的位置,其他列自动后移 insertcols!(dataframe, 2, :Data3 => Data3)
如果不需要修改原DataFrame,想要生成新的DataFrame,可以使用:
new_df = hcat(dataframe, DataFrame(Data3 = Data3))
内容的提问来源于stack exchange,提问作者AfterFray
相关产品推荐
相关产品推荐

