DataFrames

Julia has a general representation for Tables with different implementations. The most used package is DataFrames.jl. It takes advantage of Julia syntax to define certain operation.

Define a DataFrame

using DataFrames
import Random

Random.seed!(11)
n = 100
data = DataFrame(id = 1:n, x = rand(n), y = randn(n))
100×3 DataFrame
Rowidxy
Int64Float64Float64
110.4984340.527515
220.3897211.69565
330.264541.67104
440.719424-0.253313
550.6766021.90599
660.1840791.0981
770.46979-0.490607
880.568002-1.63391
990.510840.526118
10100.350315-1.75928
11110.939279-0.434014
12120.1648890.780157
13130.8830690.0931702
14140.587755-1.20095
15150.415839-0.79081
16160.777493-1.16158
17170.9547021.35025
18180.179166-0.834583
19190.0194565-0.0174576
20200.6978030.573145
21210.5796120.546791
22220.0180164-1.09512
23230.873318-0.986057
24240.378868-0.730177
25250.814732-0.521675
26260.544724-0.287674
27270.76932-1.10144
28280.7970820.673985
29290.58038-1.09944
30300.447765-1.92968
31310.87982-0.502537
32320.606194-0.064419
33330.8120210.127106
34340.1920121.48792
35350.592719-0.769706
36360.544120.522335
37370.3951260.0673831
38380.119543-1.5676
39390.6653260.0229502
40400.941306-1.01474
41410.8183591.59569
42420.0736623-1.24923
43430.102963-1.55272
44440.3167680.128793
45450.1349521.08396
46460.240911.2208
47470.836409-0.661056
48480.547614-1.03362
49490.898365-0.246088
50500.1288290.273193
51510.9011620.0798601
52520.9959720.0933959
53530.671273-1.1501
54540.1360220.0258413
55550.06129210.859464
56560.740695-0.0448524
57570.5418270.508106
58580.3684670.717429
59590.8765760.143641
60600.05079890.465037
61610.850688-1.51502
62620.5591150.353588
63630.887572-1.18114
64640.586034-0.464446
65650.7868660.917654
66660.587889-0.532397
67670.518774-0.476619
68680.454952-0.13623
69690.1069451.0882
70700.6474590.111807
71710.3443230.50579
72720.1780611.0556
73730.7379170.444486
74740.938929-0.238056
75750.0751941.6276
76760.8098910.0963209
77770.931376-0.0961142
78780.885608-0.790218
79790.129589-0.435606
80800.8540341.77548
81810.6026540.551445
82820.964165-0.85998
83830.72286-1.36129
84840.7890090.327036
85850.08353610.00592405
86860.2727020.362086
87870.876651-0.183904
88880.9443880.207392
89890.0307357-1.04739
90900.1421260.56028
91910.8494970.996262
92920.505502-0.134088
93930.201993-0.358279
94940.441165-0.0641805
95950.531264-1.55594
96960.09855090.180975
97970.6776080.326288
98980.1055141.51786
99990.258119-0.537345
1001000.8888940.37708

Subsetting

Let's select a column without doing a copy:

data.id
100-element Vector{Int64}:
   1
   2
   3
   4
   5
   6
   7
   8
   9
  10
   ⋮
  92
  93
  94
  95
  96
  97
  98
  99
 100
data[!, :id]
100-element Vector{Int64}:
   1
   2
   3
   4
   5
   6
   7
   8
   9
  10
   ⋮
  92
  93
  94
  95
  96
  97
  98
  99
 100

Modifications on these columns will be reflected in the original data.

xaux = data.x
100-element Vector{Float64}:
 0.49843398493613866
 0.3897206442798764
 0.26454039637865223
 0.7194237171475113
 0.6766024102635798
 0.1840786120276101
 0.4697903183183523
 0.5680018585914868
 0.5108399240545426
 0.3503150251639139
 ⋮
 0.5055020246950553
 0.20199332879192944
 0.4411645679023518
 0.5312642809575425
 0.0985509072108206
 0.6776076972596555
 0.10551392206669663
 0.2581188423585902
 0.8888936999885325
xaux[1] = 100
100
first(data, 2)
2×3 DataFrame
Rowidxy
Int64Float64Float64
11100.00.527515
220.3897211.69565

A copy of a column is created as folows:

xaux = data[:, :x]
100-element Vector{Float64}:
 100.0
   0.3897206442798764
   0.26454039637865223
   0.7194237171475113
   0.6766024102635798
   0.1840786120276101
   0.4697903183183523
   0.5680018585914868
   0.5108399240545426
   0.3503150251639139
   ⋮
   0.5055020246950553
   0.20199332879192944
   0.4411645679023518
   0.5312642809575425
   0.0985509072108206
   0.6776076972596555
   0.10551392206669663
   0.2581188423585902
   0.8888936999885325
xaux[1] = 10
10
first(data, 2)
2×3 DataFrame
Rowidxy
Int64Float64Float64
11100.00.527515
220.3897211.69565

More specific subsetting can be done with:

data.id[1:10]
10-element Vector{Int64}:
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
data.id[90:end]
11-element Vector{Int64}:
  90
  91
  92
  93
  94
  95
  96
  97
  98
  99
 100
data[1:10, 1:2]
10×2 DataFrame
Rowidx
Int64Float64
11100.0
220.389721
330.26454
440.719424
550.676602
660.184079
770.46979
880.568002
990.51084
10100.350315

You can also create a view that references to you DataFrame:

subdata = view(data, 1:10, 1:3)
subdata.x[1] = rand()
first(data, 2)
2×3 DataFrame
Rowidxy
Int64Float64Float64
110.285890.527515
220.3897211.69565

Transform variables

To perform operations over columns, we use the Pair syntax:

transform(data, :x => (z -> z .^ 2))
100×4 DataFrame
Rowidxyx_function
Int64Float64Float64Float64
110.285890.5275150.0817333
220.3897211.695650.151882
330.264541.671040.0699816
440.719424-0.2533130.51757
550.6766021.905990.457791
660.1840791.09810.0338849
770.46979-0.4906070.220703
880.568002-1.633910.322626
990.510840.5261180.260957
10100.350315-1.759280.122721
11110.939279-0.4340140.882244
12120.1648890.7801570.0271884
13130.8830690.09317020.779811
14140.587755-1.200950.345456
15150.415839-0.790810.172922
16160.777493-1.161580.604495
17170.9547021.350250.911455
18180.179166-0.8345830.0321004
19190.0194565-0.01745760.000378554
20200.6978030.5731450.486929
21210.5796120.5467910.33595
22220.0180164-1.095120.000324591
23230.873318-0.9860570.762684
24240.378868-0.7301770.143541
25250.814732-0.5216750.663789
26260.544724-0.2876740.296724
27270.76932-1.101440.591854
28280.7970820.6739850.63534
29290.58038-1.099440.336841
30300.447765-1.929680.200494
31310.87982-0.5025370.774082
32320.606194-0.0644190.367471
33330.8120210.1271060.659379
34340.1920121.487920.0368687
35350.592719-0.7697060.351316
36360.544120.5223350.296066
37370.3951260.06738310.156125
38380.119543-1.56760.0142905
39390.6653260.02295020.442658
40400.941306-1.014740.886057
41410.8183591.595690.669712
42420.0736623-1.249230.00542613
43430.102963-1.552720.0106013
44440.3167680.1287930.100342
45450.1349521.083960.0182119
46460.240911.22080.0580377
47470.836409-0.6610560.69958
48480.547614-1.033620.299881
49490.898365-0.2460880.80706
50500.1288290.2731930.0165969
51510.9011620.07986010.812092
52520.9959720.09339590.991961
53530.671273-1.15010.450607
54540.1360220.02584130.0185019
55550.06129210.8594640.00375672
56560.740695-0.04485240.54863
57570.5418270.5081060.293576
58580.3684670.7174290.135768
59590.8765760.1436410.768386
60600.05079890.4650370.00258053
61610.850688-1.515020.723669
62620.5591150.3535880.31261
63630.887572-1.181140.787784
64640.586034-0.4644460.343435
65650.7868660.9176540.619159
66660.587889-0.5323970.345614
67670.518774-0.4766190.269127
68680.454952-0.136230.206982
69690.1069451.08820.0114371
70700.6474590.1118070.419203
71710.3443230.505790.118558
72720.1780611.05560.0317056
73730.7379170.4444860.544521
74740.938929-0.2380560.881588
75750.0751941.62760.00565414
76760.8098910.09632090.655923
77770.931376-0.09611420.867462
78780.885608-0.7902180.784301
79790.129589-0.4356060.0167932
80800.8540341.775480.729374
81810.6026540.5514450.363191
82820.964165-0.859980.929614
83830.72286-1.361290.522527
84840.7890090.3270360.622535
85850.08353610.005924050.00697827
86860.2727020.3620860.0743661
87870.876651-0.1839040.768517
88880.9443880.2073920.891868
89890.0307357-1.047390.000944685
90900.1421260.560280.0201997
91910.8494970.9962620.721646
92920.505502-0.1340880.255532
93930.201993-0.3582790.0408013
94940.441165-0.06418050.194626
95950.531264-1.555940.282242
96960.09855090.1809750.00971228
97970.6776080.3262880.459152
98980.1055141.517860.0111332
99990.258119-0.5373450.0666253
1001000.8888940.377080.790132
typeof(:x => (z -> z .^ 2))
Pair{Symbol, Main.var"Main".var"#3#4"}

We can explicitly provide the output name:

transform(data, :x => (z -> z .^ 2) => :x2)
100×4 DataFrame
Rowidxyx2
Int64Float64Float64Float64
110.285890.5275150.0817333
220.3897211.695650.151882
330.264541.671040.0699816
440.719424-0.2533130.51757
550.6766021.905990.457791
660.1840791.09810.0338849
770.46979-0.4906070.220703
880.568002-1.633910.322626
990.510840.5261180.260957
10100.350315-1.759280.122721
11110.939279-0.4340140.882244
12120.1648890.7801570.0271884
13130.8830690.09317020.779811
14140.587755-1.200950.345456
15150.415839-0.790810.172922
16160.777493-1.161580.604495
17170.9547021.350250.911455
18180.179166-0.8345830.0321004
19190.0194565-0.01745760.000378554
20200.6978030.5731450.486929
21210.5796120.5467910.33595
22220.0180164-1.095120.000324591
23230.873318-0.9860570.762684
24240.378868-0.7301770.143541
25250.814732-0.5216750.663789
26260.544724-0.2876740.296724
27270.76932-1.101440.591854
28280.7970820.6739850.63534
29290.58038-1.099440.336841
30300.447765-1.929680.200494
31310.87982-0.5025370.774082
32320.606194-0.0644190.367471
33330.8120210.1271060.659379
34340.1920121.487920.0368687
35350.592719-0.7697060.351316
36360.544120.5223350.296066
37370.3951260.06738310.156125
38380.119543-1.56760.0142905
39390.6653260.02295020.442658
40400.941306-1.014740.886057
41410.8183591.595690.669712
42420.0736623-1.249230.00542613
43430.102963-1.552720.0106013
44440.3167680.1287930.100342
45450.1349521.083960.0182119
46460.240911.22080.0580377
47470.836409-0.6610560.69958
48480.547614-1.033620.299881
49490.898365-0.2460880.80706
50500.1288290.2731930.0165969
51510.9011620.07986010.812092
52520.9959720.09339590.991961
53530.671273-1.15010.450607
54540.1360220.02584130.0185019
55550.06129210.8594640.00375672
56560.740695-0.04485240.54863
57570.5418270.5081060.293576
58580.3684670.7174290.135768
59590.8765760.1436410.768386
60600.05079890.4650370.00258053
61610.850688-1.515020.723669
62620.5591150.3535880.31261
63630.887572-1.181140.787784
64640.586034-0.4644460.343435
65650.7868660.9176540.619159
66660.587889-0.5323970.345614
67670.518774-0.4766190.269127
68680.454952-0.136230.206982
69690.1069451.08820.0114371
70700.6474590.1118070.419203
71710.3443230.505790.118558
72720.1780611.05560.0317056
73730.7379170.4444860.544521
74740.938929-0.2380560.881588
75750.0751941.62760.00565414
76760.8098910.09632090.655923
77770.931376-0.09611420.867462
78780.885608-0.7902180.784301
79790.129589-0.4356060.0167932
80800.8540341.775480.729374
81810.6026540.5514450.363191
82820.964165-0.859980.929614
83830.72286-1.361290.522527
84840.7890090.3270360.622535
85850.08353610.005924050.00697827
86860.2727020.3620860.0743661
87870.876651-0.1839040.768517
88880.9443880.2073920.891868
89890.0307357-1.047390.000944685
90900.1421260.560280.0201997
91910.8494970.9962620.721646
92920.505502-0.1340880.255532
93930.201993-0.3582790.0408013
94940.441165-0.06418050.194626
95950.531264-1.555940.282242
96960.09855090.1809750.00971228
97970.6776080.3262880.459152
98980.1055141.517860.0111332
99990.258119-0.5373450.0666253
1001000.8888940.377080.790132

We can also vectorize any function with ByRow:

transform(data, :x => ByRow(sqrt))
100×4 DataFrame
Rowidxyx_sqrt
Int64Float64Float64Float64
110.285890.5275150.534687
220.3897211.695650.624276
330.264541.671040.514335
440.719424-0.2533130.848188
550.6766021.905990.822558
660.1840791.09810.429044
770.46979-0.4906070.685413
880.568002-1.633910.753659
990.510840.5261180.714731
10100.350315-1.759280.591874
11110.939279-0.4340140.969164
12120.1648890.7801570.406065
13130.8830690.09317020.939718
14140.587755-1.200950.766652
15150.415839-0.790810.644856
16160.777493-1.161580.881756
17170.9547021.350250.977088
18180.179166-0.8345830.42328
19190.0194565-0.01745760.139486
20200.6978030.5731450.835346
21210.5796120.5467910.761323
22220.0180164-1.095120.134225
23230.873318-0.9860570.934515
24240.378868-0.7301770.615522
25250.814732-0.5216750.902625
26260.544724-0.2876740.738054
27270.76932-1.101440.877109
28280.7970820.6739850.892794
29290.58038-1.099440.761827
30300.447765-1.929680.669153
31310.87982-0.5025370.937987
32320.606194-0.0644190.778584
33330.8120210.1271060.901122
34340.1920121.487920.438192
35350.592719-0.7697060.769882
36360.544120.5223350.737645
37370.3951260.06738310.62859
38380.119543-1.56760.34575
39390.6653260.02295020.815675
40400.941306-1.014740.970209
41410.8183591.595690.904632
42420.0736623-1.249230.271408
43430.102963-1.552720.320878
44440.3167680.1287930.562822
45450.1349521.083960.367358
46460.240911.22080.490826
47470.836409-0.6610560.914554
48480.547614-1.033620.74001
49490.898365-0.2460880.947821
50500.1288290.2731930.358927
51510.9011620.07986010.949295
52520.9959720.09339590.997984
53530.671273-1.15010.819312
54540.1360220.02584130.368811
55550.06129210.8594640.247572
56560.740695-0.04485240.860637
57570.5418270.5081060.736089
58580.3684670.7174290.607015
59590.8765760.1436410.936256
60600.05079890.4650370.225386
61610.850688-1.515020.922327
62620.5591150.3535880.74774
63630.887572-1.181140.942111
64640.586034-0.4644460.765528
65650.7868660.9176540.887055
66660.587889-0.5323970.766739
67670.518774-0.4766190.72026
68680.454952-0.136230.674502
69690.1069451.08820.327024
70700.6474590.1118070.804648
71710.3443230.505790.58679
72720.1780611.05560.421972
73730.7379170.4444860.859021
74740.938929-0.2380560.968984
75750.0751941.62760.274215
76760.8098910.09632090.899939
77770.931376-0.09611420.965078
78780.885608-0.7902180.941067
79790.129589-0.4356060.359984
80800.8540341.775480.92414
81810.6026540.5514450.776308
82820.964165-0.859980.981919
83830.72286-1.361290.850212
84840.7890090.3270360.888262
85850.08353610.005924050.289026
86860.2727020.3620860.522208
87870.876651-0.1839040.936297
88880.9443880.2073920.971796
89890.0307357-1.047390.175316
90900.1421260.560280.376996
91910.8494970.9962620.921682
92920.505502-0.1340880.710987
93930.201993-0.3582790.449437
94940.441165-0.06418050.664202
95950.531264-1.555940.728879
96960.09855090.1809750.313928
97970.6776080.3262880.823169
98980.1055141.517860.324829
99990.258119-0.5373450.508054
1001000.8888940.377080.942812

Notice that the previous operations did not modify the original dataset. You can modify your original dataset using the in-place function transform!:

transform!(data, :x => (z -> z .^ 2) => :x2)
100×4 DataFrame
Rowidxyx2
Int64Float64Float64Float64
110.285890.5275150.0817333
220.3897211.695650.151882
330.264541.671040.0699816
440.719424-0.2533130.51757
550.6766021.905990.457791
660.1840791.09810.0338849
770.46979-0.4906070.220703
880.568002-1.633910.322626
990.510840.5261180.260957
10100.350315-1.759280.122721
11110.939279-0.4340140.882244
12120.1648890.7801570.0271884
13130.8830690.09317020.779811
14140.587755-1.200950.345456
15150.415839-0.790810.172922
16160.777493-1.161580.604495
17170.9547021.350250.911455
18180.179166-0.8345830.0321004
19190.0194565-0.01745760.000378554
20200.6978030.5731450.486929
21210.5796120.5467910.33595
22220.0180164-1.095120.000324591
23230.873318-0.9860570.762684
24240.378868-0.7301770.143541
25250.814732-0.5216750.663789
26260.544724-0.2876740.296724
27270.76932-1.101440.591854
28280.7970820.6739850.63534
29290.58038-1.099440.336841
30300.447765-1.929680.200494
31310.87982-0.5025370.774082
32320.606194-0.0644190.367471
33330.8120210.1271060.659379
34340.1920121.487920.0368687
35350.592719-0.7697060.351316
36360.544120.5223350.296066
37370.3951260.06738310.156125
38380.119543-1.56760.0142905
39390.6653260.02295020.442658
40400.941306-1.014740.886057
41410.8183591.595690.669712
42420.0736623-1.249230.00542613
43430.102963-1.552720.0106013
44440.3167680.1287930.100342
45450.1349521.083960.0182119
46460.240911.22080.0580377
47470.836409-0.6610560.69958
48480.547614-1.033620.299881
49490.898365-0.2460880.80706
50500.1288290.2731930.0165969
51510.9011620.07986010.812092
52520.9959720.09339590.991961
53530.671273-1.15010.450607
54540.1360220.02584130.0185019
55550.06129210.8594640.00375672
56560.740695-0.04485240.54863
57570.5418270.5081060.293576
58580.3684670.7174290.135768
59590.8765760.1436410.768386
60600.05079890.4650370.00258053
61610.850688-1.515020.723669
62620.5591150.3535880.31261
63630.887572-1.181140.787784
64640.586034-0.4644460.343435
65650.7868660.9176540.619159
66660.587889-0.5323970.345614
67670.518774-0.4766190.269127
68680.454952-0.136230.206982
69690.1069451.08820.0114371
70700.6474590.1118070.419203
71710.3443230.505790.118558
72720.1780611.05560.0317056
73730.7379170.4444860.544521
74740.938929-0.2380560.881588
75750.0751941.62760.00565414
76760.8098910.09632090.655923
77770.931376-0.09611420.867462
78780.885608-0.7902180.784301
79790.129589-0.4356060.0167932
80800.8540341.775480.729374
81810.6026540.5514450.363191
82820.964165-0.859980.929614
83830.72286-1.361290.522527
84840.7890090.3270360.622535
85850.08353610.005924050.00697827
86860.2727020.3620860.0743661
87870.876651-0.1839040.768517
88880.9443880.2073920.891868
89890.0307357-1.047390.000944685
90900.1421260.560280.0201997
91910.8494970.9962620.721646
92920.505502-0.1340880.255532
93930.201993-0.3582790.0408013
94940.441165-0.06418050.194626
95950.531264-1.555940.282242
96960.09855090.1809750.00971228
97970.6776080.3262880.459152
98980.1055141.517860.0111332
99990.258119-0.5373450.0666253
1001000.8888940.377080.790132
data
100×4 DataFrame
Rowidxyx2
Int64Float64Float64Float64
110.285890.5275150.0817333
220.3897211.695650.151882
330.264541.671040.0699816
440.719424-0.2533130.51757
550.6766021.905990.457791
660.1840791.09810.0338849
770.46979-0.4906070.220703
880.568002-1.633910.322626
990.510840.5261180.260957
10100.350315-1.759280.122721
11110.939279-0.4340140.882244
12120.1648890.7801570.0271884
13130.8830690.09317020.779811
14140.587755-1.200950.345456
15150.415839-0.790810.172922
16160.777493-1.161580.604495
17170.9547021.350250.911455
18180.179166-0.8345830.0321004
19190.0194565-0.01745760.000378554
20200.6978030.5731450.486929
21210.5796120.5467910.33595
22220.0180164-1.095120.000324591
23230.873318-0.9860570.762684
24240.378868-0.7301770.143541
25250.814732-0.5216750.663789
26260.544724-0.2876740.296724
27270.76932-1.101440.591854
28280.7970820.6739850.63534
29290.58038-1.099440.336841
30300.447765-1.929680.200494
31310.87982-0.5025370.774082
32320.606194-0.0644190.367471
33330.8120210.1271060.659379
34340.1920121.487920.0368687
35350.592719-0.7697060.351316
36360.544120.5223350.296066
37370.3951260.06738310.156125
38380.119543-1.56760.0142905
39390.6653260.02295020.442658
40400.941306-1.014740.886057
41410.8183591.595690.669712
42420.0736623-1.249230.00542613
43430.102963-1.552720.0106013
44440.3167680.1287930.100342
45450.1349521.083960.0182119
46460.240911.22080.0580377
47470.836409-0.6610560.69958
48480.547614-1.033620.299881
49490.898365-0.2460880.80706
50500.1288290.2731930.0165969
51510.9011620.07986010.812092
52520.9959720.09339590.991961
53530.671273-1.15010.450607
54540.1360220.02584130.0185019
55550.06129210.8594640.00375672
56560.740695-0.04485240.54863
57570.5418270.5081060.293576
58580.3684670.7174290.135768
59590.8765760.1436410.768386
60600.05079890.4650370.00258053
61610.850688-1.515020.723669
62620.5591150.3535880.31261
63630.887572-1.181140.787784
64640.586034-0.4644460.343435
65650.7868660.9176540.619159
66660.587889-0.5323970.345614
67670.518774-0.4766190.269127
68680.454952-0.136230.206982
69690.1069451.08820.0114371
70700.6474590.1118070.419203
71710.3443230.505790.118558
72720.1780611.05560.0317056
73730.7379170.4444860.544521
74740.938929-0.2380560.881588
75750.0751941.62760.00565414
76760.8098910.09632090.655923
77770.931376-0.09611420.867462
78780.885608-0.7902180.784301
79790.129589-0.4356060.0167932
80800.8540341.775480.729374
81810.6026540.5514450.363191
82820.964165-0.859980.929614
83830.72286-1.361290.522527
84840.7890090.3270360.622535
85850.08353610.005924050.00697827
86860.2727020.3620860.0743661
87870.876651-0.1839040.768517
88880.9443880.2073920.891868
89890.0307357-1.047390.000944685
90900.1421260.560280.0201997
91910.8494970.9962620.721646
92920.505502-0.1340880.255532
93930.201993-0.3582790.0408013
94940.441165-0.06418050.194626
95950.531264-1.555940.282242
96960.09855090.1809750.00971228
97970.6776080.3262880.459152
98980.1055141.517860.0111332
99990.258119-0.5373450.0666253
1001000.8888940.377080.790132

The function select works in a similar way, but only includes the desired variables:

select(data, :x => (z -> z .^ 2) => :x2)
100×1 DataFrame
Rowx2
Float64
10.0817333
20.151882
30.0699816
40.51757
50.457791
60.0338849
70.220703
80.322626
90.260957
100.122721
110.882244
120.0271884
130.779811
140.345456
150.172922
160.604495
170.911455
180.0321004
190.000378554
200.486929
210.33595
220.000324591
230.762684
240.143541
250.663789
260.296724
270.591854
280.63534
290.336841
300.200494
310.774082
320.367471
330.659379
340.0368687
350.351316
360.296066
370.156125
380.0142905
390.442658
400.886057
410.669712
420.00542613
430.0106013
440.100342
450.0182119
460.0580377
470.69958
480.299881
490.80706
500.0165969
510.812092
520.991961
530.450607
540.0185019
550.00375672
560.54863
570.293576
580.135768
590.768386
600.00258053
610.723669
620.31261
630.787784
640.343435
650.619159
660.345614
670.269127
680.206982
690.0114371
700.419203
710.118558
720.0317056
730.544521
740.881588
750.00565414
760.655923
770.867462
780.784301
790.0167932
800.729374
810.363191
820.929614
830.522527
840.622535
850.00697827
860.0743661
870.768517
880.891868
890.000944685
900.0201997
910.721646
920.255532
930.0408013
940.194626
950.282242
960.00971228
970.459152
980.0111332
990.0666253
1000.790132
select(data, :x, :y)
100×2 DataFrame
Rowxy
Float64Float64
10.285890.527515
20.3897211.69565
30.264541.67104
40.719424-0.253313
50.6766021.90599
60.1840791.0981
70.46979-0.490607
80.568002-1.63391
90.510840.526118
100.350315-1.75928
110.939279-0.434014
120.1648890.780157
130.8830690.0931702
140.587755-1.20095
150.415839-0.79081
160.777493-1.16158
170.9547021.35025
180.179166-0.834583
190.0194565-0.0174576
200.6978030.573145
210.5796120.546791
220.0180164-1.09512
230.873318-0.986057
240.378868-0.730177
250.814732-0.521675
260.544724-0.287674
270.76932-1.10144
280.7970820.673985
290.58038-1.09944
300.447765-1.92968
310.87982-0.502537
320.606194-0.064419
330.8120210.127106
340.1920121.48792
350.592719-0.769706
360.544120.522335
370.3951260.0673831
380.119543-1.5676
390.6653260.0229502
400.941306-1.01474
410.8183591.59569
420.0736623-1.24923
430.102963-1.55272
440.3167680.128793
450.1349521.08396
460.240911.2208
470.836409-0.661056
480.547614-1.03362
490.898365-0.246088
500.1288290.273193
510.9011620.0798601
520.9959720.0933959
530.671273-1.1501
540.1360220.0258413
550.06129210.859464
560.740695-0.0448524
570.5418270.508106
580.3684670.717429
590.8765760.143641
600.05079890.465037
610.850688-1.51502
620.5591150.353588
630.887572-1.18114
640.586034-0.464446
650.7868660.917654
660.587889-0.532397
670.518774-0.476619
680.454952-0.13623
690.1069451.0882
700.6474590.111807
710.3443230.50579
720.1780611.0556
730.7379170.444486
740.938929-0.238056
750.0751941.6276
760.8098910.0963209
770.931376-0.0961142
780.885608-0.790218
790.129589-0.435606
800.8540341.77548
810.6026540.551445
820.964165-0.85998
830.72286-1.36129
840.7890090.327036
850.08353610.00592405
860.2727020.362086
870.876651-0.183904
880.9443880.207392
890.0307357-1.04739
900.1421260.56028
910.8494970.996262
920.505502-0.134088
930.201993-0.358279
940.441165-0.0641805
950.531264-1.55594
960.09855090.180975
970.6776080.326288
980.1055141.51786
990.258119-0.537345
1000.8888940.37708
typeof(r"^x")
Regex
select(data, r"^x")
100×2 DataFrame
Rowxx2
Float64Float64
10.285890.0817333
20.3897210.151882
30.264540.0699816
40.7194240.51757
50.6766020.457791
60.1840790.0338849
70.469790.220703
80.5680020.322626
90.510840.260957
100.3503150.122721
110.9392790.882244
120.1648890.0271884
130.8830690.779811
140.5877550.345456
150.4158390.172922
160.7774930.604495
170.9547020.911455
180.1791660.0321004
190.01945650.000378554
200.6978030.486929
210.5796120.33595
220.01801640.000324591
230.8733180.762684
240.3788680.143541
250.8147320.663789
260.5447240.296724
270.769320.591854
280.7970820.63534
290.580380.336841
300.4477650.200494
310.879820.774082
320.6061940.367471
330.8120210.659379
340.1920120.0368687
350.5927190.351316
360.544120.296066
370.3951260.156125
380.1195430.0142905
390.6653260.442658
400.9413060.886057
410.8183590.669712
420.07366230.00542613
430.1029630.0106013
440.3167680.100342
450.1349520.0182119
460.240910.0580377
470.8364090.69958
480.5476140.299881
490.8983650.80706
500.1288290.0165969
510.9011620.812092
520.9959720.991961
530.6712730.450607
540.1360220.0185019
550.06129210.00375672
560.7406950.54863
570.5418270.293576
580.3684670.135768
590.8765760.768386
600.05079890.00258053
610.8506880.723669
620.5591150.31261
630.8875720.787784
640.5860340.343435
650.7868660.619159
660.5878890.345614
670.5187740.269127
680.4549520.206982
690.1069450.0114371
700.6474590.419203
710.3443230.118558
720.1780610.0317056
730.7379170.544521
740.9389290.881588
750.0751940.00565414
760.8098910.655923
770.9313760.867462
780.8856080.784301
790.1295890.0167932
800.8540340.729374
810.6026540.363191
820.9641650.929614
830.722860.522527
840.7890090.622535
850.08353610.00697827
860.2727020.0743661
870.8766510.768517
880.9443880.891868
890.03073570.000944685
900.1421260.0201997
910.8494970.721646
920.5055020.255532
930.2019930.0408013
940.4411650.194626
950.5312640.282242
960.09855090.00971228
970.6776080.459152
980.1055140.0111332
990.2581190.0666253
1000.8888940.790132

Let's add new columns:

insertcols!(data, :z => rand(100))
100×5 DataFrame
Rowidxyx2z
Int64Float64Float64Float64Float64
110.285890.5275150.08173330.415746
220.3897211.695650.1518820.145416
330.264541.671040.06998160.968211
440.719424-0.2533130.517570.122135
550.6766021.905990.4577910.650245
660.1840791.09810.03388490.908385
770.46979-0.4906070.2207030.368075
880.568002-1.633910.3226260.63738
990.510840.5261180.2609570.853006
10100.350315-1.759280.1227210.260641
11110.939279-0.4340140.8822440.445841
12120.1648890.7801570.02718840.722329
13130.8830690.09317020.7798110.753754
14140.587755-1.200950.3454560.136612
15150.415839-0.790810.1729220.598703
16160.777493-1.161580.6044950.456477
17170.9547021.350250.9114550.963947
18180.179166-0.8345830.03210040.683798
19190.0194565-0.01745760.0003785540.599946
20200.6978030.5731450.4869290.380576
21210.5796120.5467910.335950.328706
22220.0180164-1.095120.0003245910.946892
23230.873318-0.9860570.7626840.780235
24240.378868-0.7301770.1435410.665259
25250.814732-0.5216750.6637890.705217
26260.544724-0.2876740.2967240.498049
27270.76932-1.101440.5918540.268702
28280.7970820.6739850.635340.908749
29290.58038-1.099440.3368410.0732905
30300.447765-1.929680.2004940.656036
31310.87982-0.5025370.7740820.945458
32320.606194-0.0644190.3674710.562051
33330.8120210.1271060.6593790.575288
34340.1920121.487920.03686870.553721
35350.592719-0.7697060.3513160.940021
36360.544120.5223350.2960660.151165
37370.3951260.06738310.1561250.390626
38380.119543-1.56760.01429050.363883
39390.6653260.02295020.4426580.978548
40400.941306-1.014740.8860570.681442
41410.8183591.595690.6697120.679509
42420.0736623-1.249230.005426130.731035
43430.102963-1.552720.01060130.83621
44440.3167680.1287930.1003420.0015229
45450.1349521.083960.01821190.0610379
46460.240911.22080.05803770.207763
47470.836409-0.6610560.699580.649226
48480.547614-1.033620.2998810.607517
49490.898365-0.2460880.807060.0528884
50500.1288290.2731930.01659690.731454
51510.9011620.07986010.8120920.269975
52520.9959720.09339590.9919610.404501
53530.671273-1.15010.4506070.637668
54540.1360220.02584130.01850190.974579
55550.06129210.8594640.003756720.883466
56560.740695-0.04485240.548630.178138
57570.5418270.5081060.2935760.9259
58580.3684670.7174290.1357680.275854
59590.8765760.1436410.7683860.625307
60600.05079890.4650370.002580530.988588
61610.850688-1.515020.7236690.136545
62620.5591150.3535880.312610.0516244
63630.887572-1.181140.7877840.0474922
64640.586034-0.4644460.3434350.448661
65650.7868660.9176540.6191590.778479
66660.587889-0.5323970.3456140.124267
67670.518774-0.4766190.2691270.646845
68680.454952-0.136230.2069820.208037
69690.1069451.08820.01143710.480256
70700.6474590.1118070.4192030.354852
71710.3443230.505790.1185580.310324
72720.1780611.05560.03170560.477168
73730.7379170.4444860.5445210.385329
74740.938929-0.2380560.8815880.127697
75750.0751941.62760.005654140.900859
76760.8098910.09632090.6559230.64352
77770.931376-0.09611420.8674620.706767
78780.885608-0.7902180.7843010.256923
79790.129589-0.4356060.01679320.162503
80800.8540341.775480.7293740.138762
81810.6026540.5514450.3631910.534508
82820.964165-0.859980.9296140.356014
83830.72286-1.361290.5225270.935442
84840.7890090.3270360.6225350.811898
85850.08353610.005924050.006978270.877544
86860.2727020.3620860.07436610.155351
87870.876651-0.1839040.7685170.593009
88880.9443880.2073920.8918680.773646
89890.0307357-1.047390.0009446850.67941
90900.1421260.560280.02019970.0526395
91910.8494970.9962620.7216460.0411288
92920.505502-0.1340880.2555320.463698
93930.201993-0.3582790.04080130.495081
94940.441165-0.06418050.1946260.19101
95950.531264-1.555940.2822420.648277
96960.09855090.1809750.009712280.797986
97970.6776080.3262880.4591520.204293
98980.1055141.517860.01113320.418368
99990.258119-0.5373450.06662530.0400795
1001000.8888940.377080.7901320.31578
first(data, 5)
5×5 DataFrame
Rowidxyx2z
Int64Float64Float64Float64Float64
110.285890.5275150.08173330.415746
220.3897211.695650.1518820.145416
330.264541.671040.06998160.968211
440.719424-0.2533130.517570.122135
550.6766021.905990.4577910.650245

Let's remove columns:

select!(data, Not(:x2))
100×4 DataFrame
Rowidxyz
Int64Float64Float64Float64
110.285890.5275150.415746
220.3897211.695650.145416
330.264541.671040.968211
440.719424-0.2533130.122135
550.6766021.905990.650245
660.1840791.09810.908385
770.46979-0.4906070.368075
880.568002-1.633910.63738
990.510840.5261180.853006
10100.350315-1.759280.260641
11110.939279-0.4340140.445841
12120.1648890.7801570.722329
13130.8830690.09317020.753754
14140.587755-1.200950.136612
15150.415839-0.790810.598703
16160.777493-1.161580.456477
17170.9547021.350250.963947
18180.179166-0.8345830.683798
19190.0194565-0.01745760.599946
20200.6978030.5731450.380576
21210.5796120.5467910.328706
22220.0180164-1.095120.946892
23230.873318-0.9860570.780235
24240.378868-0.7301770.665259
25250.814732-0.5216750.705217
26260.544724-0.2876740.498049
27270.76932-1.101440.268702
28280.7970820.6739850.908749
29290.58038-1.099440.0732905
30300.447765-1.929680.656036
31310.87982-0.5025370.945458
32320.606194-0.0644190.562051
33330.8120210.1271060.575288
34340.1920121.487920.553721
35350.592719-0.7697060.940021
36360.544120.5223350.151165
37370.3951260.06738310.390626
38380.119543-1.56760.363883
39390.6653260.02295020.978548
40400.941306-1.014740.681442
41410.8183591.595690.679509
42420.0736623-1.249230.731035
43430.102963-1.552720.83621
44440.3167680.1287930.0015229
45450.1349521.083960.0610379
46460.240911.22080.207763
47470.836409-0.6610560.649226
48480.547614-1.033620.607517
49490.898365-0.2460880.0528884
50500.1288290.2731930.731454
51510.9011620.07986010.269975
52520.9959720.09339590.404501
53530.671273-1.15010.637668
54540.1360220.02584130.974579
55550.06129210.8594640.883466
56560.740695-0.04485240.178138
57570.5418270.5081060.9259
58580.3684670.7174290.275854
59590.8765760.1436410.625307
60600.05079890.4650370.988588
61610.850688-1.515020.136545
62620.5591150.3535880.0516244
63630.887572-1.181140.0474922
64640.586034-0.4644460.448661
65650.7868660.9176540.778479
66660.587889-0.5323970.124267
67670.518774-0.4766190.646845
68680.454952-0.136230.208037
69690.1069451.08820.480256
70700.6474590.1118070.354852
71710.3443230.505790.310324
72720.1780611.05560.477168
73730.7379170.4444860.385329
74740.938929-0.2380560.127697
75750.0751941.62760.900859
76760.8098910.09632090.64352
77770.931376-0.09611420.706767
78780.885608-0.7902180.256923
79790.129589-0.4356060.162503
80800.8540341.775480.138762
81810.6026540.5514450.534508
82820.964165-0.859980.356014
83830.72286-1.361290.935442
84840.7890090.3270360.811898
85850.08353610.005924050.877544
86860.2727020.3620860.155351
87870.876651-0.1839040.593009
88880.9443880.2073920.773646
89890.0307357-1.047390.67941
90900.1421260.560280.0526395
91910.8494970.9962620.0411288
92920.505502-0.1340880.463698
93930.201993-0.3582790.495081
94940.441165-0.06418050.19101
95950.531264-1.555940.648277
96960.09855090.1809750.797986
97970.6776080.3262880.204293
98980.1055141.517860.418368
99990.258119-0.5373450.0400795
1001000.8888940.377080.31578
first(data, 5)
5×4 DataFrame
Rowidxyz
Int64Float64Float64Float64
110.285890.5275150.415746
220.3897211.695650.145416
330.264541.671040.968211
440.719424-0.2533130.122135
550.6766021.905990.650245

Another simple operation is to rename columns:

rename(data, :x => :xnew, :z => :znew)
100×4 DataFrame
Rowidxnewyznew
Int64Float64Float64Float64
110.285890.5275150.415746
220.3897211.695650.145416
330.264541.671040.968211
440.719424-0.2533130.122135
550.6766021.905990.650245
660.1840791.09810.908385
770.46979-0.4906070.368075
880.568002-1.633910.63738
990.510840.5261180.853006
10100.350315-1.759280.260641
11110.939279-0.4340140.445841
12120.1648890.7801570.722329
13130.8830690.09317020.753754
14140.587755-1.200950.136612
15150.415839-0.790810.598703
16160.777493-1.161580.456477
17170.9547021.350250.963947
18180.179166-0.8345830.683798
19190.0194565-0.01745760.599946
20200.6978030.5731450.380576
21210.5796120.5467910.328706
22220.0180164-1.095120.946892
23230.873318-0.9860570.780235
24240.378868-0.7301770.665259
25250.814732-0.5216750.705217
26260.544724-0.2876740.498049
27270.76932-1.101440.268702
28280.7970820.6739850.908749
29290.58038-1.099440.0732905
30300.447765-1.929680.656036
31310.87982-0.5025370.945458
32320.606194-0.0644190.562051
33330.8120210.1271060.575288
34340.1920121.487920.553721
35350.592719-0.7697060.940021
36360.544120.5223350.151165
37370.3951260.06738310.390626
38380.119543-1.56760.363883
39390.6653260.02295020.978548
40400.941306-1.014740.681442
41410.8183591.595690.679509
42420.0736623-1.249230.731035
43430.102963-1.552720.83621
44440.3167680.1287930.0015229
45450.1349521.083960.0610379
46460.240911.22080.207763
47470.836409-0.6610560.649226
48480.547614-1.033620.607517
49490.898365-0.2460880.0528884
50500.1288290.2731930.731454
51510.9011620.07986010.269975
52520.9959720.09339590.404501
53530.671273-1.15010.637668
54540.1360220.02584130.974579
55550.06129210.8594640.883466
56560.740695-0.04485240.178138
57570.5418270.5081060.9259
58580.3684670.7174290.275854
59590.8765760.1436410.625307
60600.05079890.4650370.988588
61610.850688-1.515020.136545
62620.5591150.3535880.0516244
63630.887572-1.181140.0474922
64640.586034-0.4644460.448661
65650.7868660.9176540.778479
66660.587889-0.5323970.124267
67670.518774-0.4766190.646845
68680.454952-0.136230.208037
69690.1069451.08820.480256
70700.6474590.1118070.354852
71710.3443230.505790.310324
72720.1780611.05560.477168
73730.7379170.4444860.385329
74740.938929-0.2380560.127697
75750.0751941.62760.900859
76760.8098910.09632090.64352
77770.931376-0.09611420.706767
78780.885608-0.7902180.256923
79790.129589-0.4356060.162503
80800.8540341.775480.138762
81810.6026540.5514450.534508
82820.964165-0.859980.356014
83830.72286-1.361290.935442
84840.7890090.3270360.811898
85850.08353610.005924050.877544
86860.2727020.3620860.155351
87870.876651-0.1839040.593009
88880.9443880.2073920.773646
89890.0307357-1.047390.67941
90900.1421260.560280.0526395
91910.8494970.9962620.0411288
92920.505502-0.1340880.463698
93930.201993-0.3582790.495081
94940.441165-0.06418050.19101
95950.531264-1.555940.648277
96960.09855090.1809750.797986
97970.6776080.3262880.204293
98980.1055141.517860.418368
99990.258119-0.5373450.0400795
1001000.8888940.377080.31578
rename(data, [:x, :z] .=> [:xnew, :znew])
100×4 DataFrame
Rowidxnewyznew
Int64Float64Float64Float64
110.285890.5275150.415746
220.3897211.695650.145416
330.264541.671040.968211
440.719424-0.2533130.122135
550.6766021.905990.650245
660.1840791.09810.908385
770.46979-0.4906070.368075
880.568002-1.633910.63738
990.510840.5261180.853006
10100.350315-1.759280.260641
11110.939279-0.4340140.445841
12120.1648890.7801570.722329
13130.8830690.09317020.753754
14140.587755-1.200950.136612
15150.415839-0.790810.598703
16160.777493-1.161580.456477
17170.9547021.350250.963947
18180.179166-0.8345830.683798
19190.0194565-0.01745760.599946
20200.6978030.5731450.380576
21210.5796120.5467910.328706
22220.0180164-1.095120.946892
23230.873318-0.9860570.780235
24240.378868-0.7301770.665259
25250.814732-0.5216750.705217
26260.544724-0.2876740.498049
27270.76932-1.101440.268702
28280.7970820.6739850.908749
29290.58038-1.099440.0732905
30300.447765-1.929680.656036
31310.87982-0.5025370.945458
32320.606194-0.0644190.562051
33330.8120210.1271060.575288
34340.1920121.487920.553721
35350.592719-0.7697060.940021
36360.544120.5223350.151165
37370.3951260.06738310.390626
38380.119543-1.56760.363883
39390.6653260.02295020.978548
40400.941306-1.014740.681442
41410.8183591.595690.679509
42420.0736623-1.249230.731035
43430.102963-1.552720.83621
44440.3167680.1287930.0015229
45450.1349521.083960.0610379
46460.240911.22080.207763
47470.836409-0.6610560.649226
48480.547614-1.033620.607517
49490.898365-0.2460880.0528884
50500.1288290.2731930.731454
51510.9011620.07986010.269975
52520.9959720.09339590.404501
53530.671273-1.15010.637668
54540.1360220.02584130.974579
55550.06129210.8594640.883466
56560.740695-0.04485240.178138
57570.5418270.5081060.9259
58580.3684670.7174290.275854
59590.8765760.1436410.625307
60600.05079890.4650370.988588
61610.850688-1.515020.136545
62620.5591150.3535880.0516244
63630.887572-1.181140.0474922
64640.586034-0.4644460.448661
65650.7868660.9176540.778479
66660.587889-0.5323970.124267
67670.518774-0.4766190.646845
68680.454952-0.136230.208037
69690.1069451.08820.480256
70700.6474590.1118070.354852
71710.3443230.505790.310324
72720.1780611.05560.477168
73730.7379170.4444860.385329
74740.938929-0.2380560.127697
75750.0751941.62760.900859
76760.8098910.09632090.64352
77770.931376-0.09611420.706767
78780.885608-0.7902180.256923
79790.129589-0.4356060.162503
80800.8540341.775480.138762
81810.6026540.5514450.534508
82820.964165-0.859980.356014
83830.72286-1.361290.935442
84840.7890090.3270360.811898
85850.08353610.005924050.877544
86860.2727020.3620860.155351
87870.876651-0.1839040.593009
88880.9443880.2073920.773646
89890.0307357-1.047390.67941
90900.1421260.560280.0526395
91910.8494970.9962620.0411288
92920.505502-0.1340880.463698
93930.201993-0.3582790.495081
94940.441165-0.06418050.19101
95950.531264-1.555940.648277
96960.09855090.1809750.797986
97970.6776080.3262880.204293
98980.1055141.517860.418368
99990.258119-0.5373450.0400795
1001000.8888940.377080.31578
rename(var -> var * "_new", data)
100×4 DataFrame
Rowid_newx_newy_newz_new
Int64Float64Float64Float64
110.285890.5275150.415746
220.3897211.695650.145416
330.264541.671040.968211
440.719424-0.2533130.122135
550.6766021.905990.650245
660.1840791.09810.908385
770.46979-0.4906070.368075
880.568002-1.633910.63738
990.510840.5261180.853006
10100.350315-1.759280.260641
11110.939279-0.4340140.445841
12120.1648890.7801570.722329
13130.8830690.09317020.753754
14140.587755-1.200950.136612
15150.415839-0.790810.598703
16160.777493-1.161580.456477
17170.9547021.350250.963947
18180.179166-0.8345830.683798
19190.0194565-0.01745760.599946
20200.6978030.5731450.380576
21210.5796120.5467910.328706
22220.0180164-1.095120.946892
23230.873318-0.9860570.780235
24240.378868-0.7301770.665259
25250.814732-0.5216750.705217
26260.544724-0.2876740.498049
27270.76932-1.101440.268702
28280.7970820.6739850.908749
29290.58038-1.099440.0732905
30300.447765-1.929680.656036
31310.87982-0.5025370.945458
32320.606194-0.0644190.562051
33330.8120210.1271060.575288
34340.1920121.487920.553721
35350.592719-0.7697060.940021
36360.544120.5223350.151165
37370.3951260.06738310.390626
38380.119543-1.56760.363883
39390.6653260.02295020.978548
40400.941306-1.014740.681442
41410.8183591.595690.679509
42420.0736623-1.249230.731035
43430.102963-1.552720.83621
44440.3167680.1287930.0015229
45450.1349521.083960.0610379
46460.240911.22080.207763
47470.836409-0.6610560.649226
48480.547614-1.033620.607517
49490.898365-0.2460880.0528884
50500.1288290.2731930.731454
51510.9011620.07986010.269975
52520.9959720.09339590.404501
53530.671273-1.15010.637668
54540.1360220.02584130.974579
55550.06129210.8594640.883466
56560.740695-0.04485240.178138
57570.5418270.5081060.9259
58580.3684670.7174290.275854
59590.8765760.1436410.625307
60600.05079890.4650370.988588
61610.850688-1.515020.136545
62620.5591150.3535880.0516244
63630.887572-1.181140.0474922
64640.586034-0.4644460.448661
65650.7868660.9176540.778479
66660.587889-0.5323970.124267
67670.518774-0.4766190.646845
68680.454952-0.136230.208037
69690.1069451.08820.480256
70700.6474590.1118070.354852
71710.3443230.505790.310324
72720.1780611.05560.477168
73730.7379170.4444860.385329
74740.938929-0.2380560.127697
75750.0751941.62760.900859
76760.8098910.09632090.64352
77770.931376-0.09611420.706767
78780.885608-0.7902180.256923
79790.129589-0.4356060.162503
80800.8540341.775480.138762
81810.6026540.5514450.534508
82820.964165-0.859980.356014
83830.72286-1.361290.935442
84840.7890090.3270360.811898
85850.08353610.005924050.877544
86860.2727020.3620860.155351
87870.876651-0.1839040.593009
88880.9443880.2073920.773646
89890.0307357-1.047390.67941
90900.1421260.560280.0526395
91910.8494970.9962620.0411288
92920.505502-0.1340880.463698
93930.201993-0.3582790.495081
94940.441165-0.06418050.19101
95950.531264-1.555940.648277
96960.09855090.1809750.797986
97970.6776080.3262880.204293
98980.1055141.517860.418368
99990.258119-0.5373450.0400795
1001000.8888940.377080.31578

Remember to use rename! to actually make the changes on the original dataset.