将具有常量值的列添加到 DataFrame

Jos*_*asa 3 julia dataframes.jl

如何向 DataFrame 添加具有常量值的列?

\n

例如我有以下数据框:

\n
using DataFrames\n\ndf = DataFrame(x = 1:10, y = 'a':'j')\n
Run Code Online (Sandbox Code Playgroud)\n

我想添加一个z具有恒定值的新变量1新变量并获得:

\n
10\xc3\x973 DataFrame\n Row \xe2\x94\x82 x      y     z     \n     \xe2\x94\x82 Int64  Char  Int64\n\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xbc\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\n   1 \xe2\x94\x82     1  a         1\n   2 \xe2\x94\x82     2  b         1\n   3 \xe2\x94\x82     3  c         1\n   4 \xe2\x94\x82     4  d         1\n   5 \xe2\x94\x82     5  e         1\n   6 \xe2\x94\x82     6  f         1\n   7 \xe2\x94\x82     7  g         1\n   8 \xe2\x94\x82     8  h         1\n   9 \xe2\x94\x82     9  i         1\n  10 \xe2\x94\x82    10  j         1\n
Run Code Online (Sandbox Code Playgroud)\n

Lik*_*han 5

要创建这样的列:

df = DataFrame(x = 1:10, y = 'a':'j', d = 1)

要将此类列附加到现有的 DataFrame,您需要广播:

df.e .= 1

或者

df[:, "f"] .= 1


Bog*_*ski 5

更通用的替代方案是:

\n
julia> insertcols!(df, :z => 1)\n10\xc3\x973 DataFrame\n Row \xe2\x94\x82 x      y     z\n     \xe2\x94\x82 Int64  Char  Int64\n\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xbc\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\n   1 \xe2\x94\x82     1  a         1\n   2 \xe2\x94\x82     2  b         1\n   3 \xe2\x94\x82     3  c         1\n   4 \xe2\x94\x82     4  d         1\n   5 \xe2\x94\x82     5  e         1\n   6 \xe2\x94\x82     6  f         1\n   7 \xe2\x94\x82     7  g         1\n   8 \xe2\x94\x82     8  h         1\n   9 \xe2\x94\x82     9  i         1\n  10 \xe2\x94\x82    10  j         1\n
Run Code Online (Sandbox Code Playgroud)\n

默认情况下,它的作用是相同的,但它还:

\n
    \n
  1. 允许您指定新列的位置;
  2. \n
  3. 默认情况下确保您不会意外覆盖现有列
  4. \n
\n