将具有常量值的列添加到 DataFrame
Add a column with a constant value to a DataFrame
如何将具有常量值的列添加到 DataFrame?
例如我有以下数据框:
using DataFrames
df = DataFrame(x = 1:10, y = 'a':'j')
并且我想添加一个新变量z
,其值为1
并获得:
10×3 DataFrame
Row │ x y z
│ Int64 Char Int64
─────┼────────────────────
1 │ 1 a 1
2 │ 2 b 1
3 │ 3 c 1
4 │ 4 d 1
5 │ 5 e 1
6 │ 6 f 1
7 │ 7 g 1
8 │ 8 h 1
9 │ 9 i 1
10 │ 10 j 1
要创建这样的专栏:
df = DataFrame(x = 1:10, y = 'a':'j', d = 1)
要将此类列附加到现有 DataFrame,您需要广播:
df.e .= 1
或
df[:, "f"] .= 1
更通用的替代方法是:
julia> insertcols!(df, :z => 1)
10×3 DataFrame
Row │ x y z
│ Int64 Char Int64
─────┼────────────────────
1 │ 1 a 1
2 │ 2 b 1
3 │ 3 c 1
4 │ 4 d 1
5 │ 5 e 1
6 │ 6 f 1
7 │ 7 g 1
8 │ 8 h 1
9 │ 9 i 1
10 │ 10 j 1
默认情况下做同样的事情,但另外:
- 允许您指定新列的位置;
- 默认情况下确保您不会意外覆盖现有列
如何将具有常量值的列添加到 DataFrame?
例如我有以下数据框:
using DataFrames
df = DataFrame(x = 1:10, y = 'a':'j')
并且我想添加一个新变量z
,其值为1
并获得:
10×3 DataFrame
Row │ x y z
│ Int64 Char Int64
─────┼────────────────────
1 │ 1 a 1
2 │ 2 b 1
3 │ 3 c 1
4 │ 4 d 1
5 │ 5 e 1
6 │ 6 f 1
7 │ 7 g 1
8 │ 8 h 1
9 │ 9 i 1
10 │ 10 j 1
要创建这样的专栏:
df = DataFrame(x = 1:10, y = 'a':'j', d = 1)
要将此类列附加到现有 DataFrame,您需要广播:
df.e .= 1
或
df[:, "f"] .= 1
更通用的替代方法是:
julia> insertcols!(df, :z => 1)
10×3 DataFrame
Row │ x y z
│ Int64 Char Int64
─────┼────────────────────
1 │ 1 a 1
2 │ 2 b 1
3 │ 3 c 1
4 │ 4 d 1
5 │ 5 e 1
6 │ 6 f 1
7 │ 7 g 1
8 │ 8 h 1
9 │ 9 i 1
10 │ 10 j 1
默认情况下做同样的事情,但另外:
- 允许您指定新列的位置;
- 默认情况下确保您不会意外覆盖现有列