diff --git a/01_constructors.ipynb b/01_constructors.ipynb index 0ce6028..0f3ea04 100644 --- a/01_constructors.ipynb +++ b/01_constructors.ipynb @@ -5,7 +5,7 @@ "metadata": {}, "source": [ "# Introduction to DataFrames\n", - "**[Bogumił Kamiński](http://bogumilkaminski.pl/about/), April 27, 2019**\n", + "**[Bogumił Kamiński](http://bogumilkaminski.pl/about/), July 16, 2019**\n", "\n", "Let's get started by loading the `DataFrames` package." ] @@ -65,7 +65,7 @@ } ], "source": [ - "DataFrame() # empty DataFrame" + "DataFrame()" ] }, { @@ -83,7 +83,7 @@ { "data": { "text/html": [ - "

3 rows × 3 columns

ABC
Int64Float64String
110.211587LdB
220.880327yXA
330.127785LJY
" + "

3 rows × 3 columns

ABC
Int64Float64String
110.0489428d0
220.432517BEi
330.3488595F7
" ], "text/latex": [ "\\begin{tabular}{r|ccc}\n", @@ -91,9 +91,9 @@ "\t\\hline\n", "\t& Int64 & Float64 & String\\\\\n", "\t\\hline\n", - "\t1 & 1 & 0.211587 & LdB \\\\\n", - "\t2 & 2 & 0.880327 & yXA \\\\\n", - "\t3 & 3 & 0.127785 & LJY \\\\\n", + "\t1 & 1 & 0.048942 & 8d0 \\\\\n", + "\t2 & 2 & 0.432517 & BEi \\\\\n", + "\t3 & 3 & 0.348859 & 5F7 \\\\\n", "\\end{tabular}\n" ], "text/plain": [ @@ -101,9 +101,9 @@ "│ Row │ A │ B │ C │\n", "│ │ \u001b[90mInt64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mString\u001b[39m │\n", "├─────┼───────┼──────────┼────────┤\n", - "│ 1 │ 1 │ 0.211587 │ LdB │\n", - "│ 2 │ 2 │ 0.880327 │ yXA │\n", - "│ 3 │ 3 │ 0.127785 │ LJY │" + "│ 1 │ 1 │ 0.048942 │ 8d0 │\n", + "│ 2 │ 2 │ 0.432517 │ BEi │\n", + "│ 3 │ 3 │ 0.348859 │ 5F7 │" ] }, "execution_count": 3, @@ -223,7 +223,7 @@ { "data": { "text/html": [ - "

3 rows × 3 columns

x1x2x3
Float64Float64Float64
10.1392370.372970.79358
20.6123630.03382580.918752
30.5745980.6932670.301719
" + "

3 rows × 3 columns

x1x2x3
Float64Float64Float64
10.001622730.03379490.73149
20.3731790.6662660.935488
30.5011720.899120.0826475
" ], "text/latex": [ "\\begin{tabular}{r|ccc}\n", @@ -231,19 +231,19 @@ "\t\\hline\n", "\t& Float64 & Float64 & Float64\\\\\n", "\t\\hline\n", - "\t1 & 0.139237 & 0.37297 & 0.79358 \\\\\n", - "\t2 & 0.612363 & 0.0338258 & 0.918752 \\\\\n", - "\t3 & 0.574598 & 0.693267 & 0.301719 \\\\\n", + "\t1 & 0.00162273 & 0.0337949 & 0.73149 \\\\\n", + "\t2 & 0.373179 & 0.666266 & 0.935488 \\\\\n", + "\t3 & 0.501172 & 0.89912 & 0.0826475 \\\\\n", "\\end{tabular}\n" ], "text/plain": [ "3×3 DataFrame\n", - "│ Row │ x1 │ x2 │ x3 │\n", - "│ │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │\n", - "├─────┼──────────┼───────────┼──────────┤\n", - "│ 1 │ 0.139237 │ 0.37297 │ 0.79358 │\n", - "│ 2 │ 0.612363 │ 0.0338258 │ 0.918752 │\n", - "│ 3 │ 0.574598 │ 0.693267 │ 0.301719 │" + "│ Row │ x1 │ x2 │ x3 │\n", + "│ │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │\n", + "├─────┼────────────┼───────────┼───────────┤\n", + "│ 1 │ 0.00162273 │ 0.0337949 │ 0.73149 │\n", + "│ 2 │ 0.373179 │ 0.666266 │ 0.935488 │\n", + "│ 3 │ 0.501172 │ 0.89912 │ 0.0826475 │" ] }, "execution_count": 6, @@ -275,12 +275,13 @@ "ArgumentError: 'Array{Float64,1}' iterates 'Float64' values, which don't satisfy the Tables.jl Row-iterator interface", "", "Stacktrace:", - " [1] invalidtable(::Array{Float64,1}, ::Float64) at C:\\Users\\bogum\\.julia\\packages\\Tables\\P0aUn\\src\\iteratorwrapper.jl:35", - " [2] iterate at C:\\Users\\bogum\\.julia\\packages\\Tables\\P0aUn\\src\\iteratorwrapper.jl:41 [inlined]", - " [3] buildcolumns(::Nothing, ::Tables.IteratorWrapper{Array{Float64,1}}) at C:\\Users\\bogum\\.julia\\packages\\Tables\\P0aUn\\src\\fallbacks.jl:123", - " [4] #DataFrame#364(::Bool, ::Type, ::Array{Float64,1}) at C:\\Users\\bogum\\.julia\\packages\\Tables\\P0aUn\\src\\fallbacks.jl:154", - " [5] DataFrame(::Array{Float64,1}) at C:\\Users\\bogum\\.julia\\packages\\DataFrames\\Wvy9E\\src\\other\\tables.jl:20", - " [6] top-level scope at In[7]:1" + " [1] invalidtable(::Array{Float64,1}, ::Float64) at C:\\Users\\bogum\\.julia\\packages\\Tables\\JfPP0\\src\\tofromdatavalues.jl:34", + " [2] iterate at C:\\Users\\bogum\\.julia\\packages\\Tables\\JfPP0\\src\\tofromdatavalues.jl:40 [inlined]", + " [3] buildcolumns at C:\\Users\\bogum\\.julia\\packages\\Tables\\JfPP0\\src\\fallbacks.jl:143 [inlined]", + " [4] columns at C:\\Users\\bogum\\.julia\\packages\\Tables\\JfPP0\\src\\fallbacks.jl:174 [inlined]", + " [5] #DataFrame#394(::Bool, ::Type, ::Array{Float64,1}) at C:\\Users\\bogum\\.julia\\packages\\DataFrames\\GoFnP\\src\\other\\tables.jl:34", + " [6] DataFrame(::Array{Float64,1}) at C:\\Users\\bogum\\.julia\\packages\\DataFrames\\GoFnP\\src\\other\\tables.jl:25", + " [7] top-level scope at In[7]:1" ] } ], @@ -487,7 +488,7 @@ { "data": { "text/html": [ - "

3 rows × 4 columns

x1x2x3x4
Float64Float64Float64Float64
10.8832820.09826550.4387230.86469
20.821510.3092460.9212060.742596
30.1071960.9958360.9173110.986401
" + "

3 rows × 4 columns

x1x2x3x4
Float64Float64Float64Float64
10.8454540.618710.2672890.303612
20.02944090.7244910.3440010.29375
30.4188480.2981010.1068540.632238
" ], "text/latex": [ "\\begin{tabular}{r|cccc}\n", @@ -495,19 +496,19 @@ "\t\\hline\n", "\t& Float64 & Float64 & Float64 & Float64\\\\\n", "\t\\hline\n", - "\t1 & 0.883282 & 0.0982655 & 0.438723 & 0.86469 \\\\\n", - "\t2 & 0.82151 & 0.309246 & 0.921206 & 0.742596 \\\\\n", - "\t3 & 0.107196 & 0.995836 & 0.917311 & 0.986401 \\\\\n", + "\t1 & 0.845454 & 0.61871 & 0.267289 & 0.303612 \\\\\n", + "\t2 & 0.0294409 & 0.724491 & 0.344001 & 0.29375 \\\\\n", + "\t3 & 0.418848 & 0.298101 & 0.106854 & 0.632238 \\\\\n", "\\end{tabular}\n" ], "text/plain": [ "3×4 DataFrame\n", - "│ Row │ x1 │ x2 │ x3 │ x4 │\n", - "│ │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │\n", - "├─────┼──────────┼───────────┼──────────┼──────────┤\n", - "│ 1 │ 0.883282 │ 0.0982655 │ 0.438723 │ 0.86469 │\n", - "│ 2 │ 0.82151 │ 0.309246 │ 0.921206 │ 0.742596 │\n", - "│ 3 │ 0.107196 │ 0.995836 │ 0.917311 │ 0.986401 │" + "│ Row │ x1 │ x2 │ x3 │ x4 │\n", + "│ │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │\n", + "├─────┼───────────┼──────────┼──────────┼──────────┤\n", + "│ 1 │ 0.845454 │ 0.61871 │ 0.267289 │ 0.303612 │\n", + "│ 2 │ 0.0294409 │ 0.724491 │ 0.344001 │ 0.29375 │\n", + "│ 3 │ 0.418848 │ 0.298101 │ 0.106854 │ 0.632238 │" ] }, "execution_count": 12, @@ -534,7 +535,7 @@ { "data": { "text/html": [ - "

3 rows × 4 columns

abcd
Float64Float64Float64Float64
10.1693980.541640.6758990.41232
20.7234240.9063820.3247950.204721
30.548970.9336630.5462340.187317
" + "

3 rows × 4 columns

abcd
Float64Float64Float64Float64
10.181660.9893060.4493160.0671069
20.953790.2671080.7458010.500514
30.9065090.2908230.8337230.891714
" ], "text/latex": [ "\\begin{tabular}{r|cccc}\n", @@ -542,19 +543,19 @@ "\t\\hline\n", "\t& Float64 & Float64 & Float64 & Float64\\\\\n", "\t\\hline\n", - "\t1 & 0.169398 & 0.54164 & 0.675899 & 0.41232 \\\\\n", - "\t2 & 0.723424 & 0.906382 & 0.324795 & 0.204721 \\\\\n", - "\t3 & 0.54897 & 0.933663 & 0.546234 & 0.187317 \\\\\n", + "\t1 & 0.18166 & 0.989306 & 0.449316 & 0.0671069 \\\\\n", + "\t2 & 0.95379 & 0.267108 & 0.745801 & 0.500514 \\\\\n", + "\t3 & 0.906509 & 0.290823 & 0.833723 & 0.891714 \\\\\n", "\\end{tabular}\n" ], "text/plain": [ "3×4 DataFrame\n", - "│ Row │ a │ b │ c │ d │\n", - "│ │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │\n", - "├─────┼──────────┼──────────┼──────────┼──────────┤\n", - "│ 1 │ 0.169398 │ 0.54164 │ 0.675899 │ 0.41232 │\n", - "│ 2 │ 0.723424 │ 0.906382 │ 0.324795 │ 0.204721 │\n", - "│ 3 │ 0.54897 │ 0.933663 │ 0.546234 │ 0.187317 │" + "│ Row │ a │ b │ c │ d │\n", + "│ │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │\n", + "├─────┼──────────┼──────────┼──────────┼───────────┤\n", + "│ 1 │ 0.18166 │ 0.989306 │ 0.449316 │ 0.0671069 │\n", + "│ 2 │ 0.95379 │ 0.267108 │ 0.745801 │ 0.500514 │\n", + "│ 3 │ 0.906509 │ 0.290823 │ 0.833723 │ 0.891714 │" ] }, "execution_count": 13, @@ -583,7 +584,7 @@ { "data": { "text/html": [ - "

1 rows × 3 columns

ABC
Int64Float64Any
1970020804.79264e-316missing
" + "

1 rows × 3 columns

ABC
Int64Float64Any
1722898565.02189e-316missing
" ], "text/latex": [ "\\begin{tabular}{r|ccc}\n", @@ -591,7 +592,7 @@ "\t\\hline\n", "\t& Int64 & Float64 & Any\\\\\n", "\t\\hline\n", - "\t1 & 97002080 & 4.79264e-316 & \\\\\n", + "\t1 & 72289856 & 5.02189e-316 & \\\\\n", "\\end{tabular}\n" ], "text/plain": [ @@ -599,7 +600,7 @@ "│ Row │ A │ B │ C │\n", "│ │ \u001b[90mInt64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mAny\u001b[39m │\n", "├─────┼──────────┼──────────────┼─────────┤\n", - "│ 1 │ 97002080 │ 4.79264e-316 │ \u001b[90mmissing\u001b[39m │" + "│ 1 │ 72289856 │ 5.02189e-316 │ \u001b[90mmissing\u001b[39m │" ] }, "execution_count": 14, @@ -626,7 +627,7 @@ { "data": { "text/html": [ - "

1 rows × 3 columns

ABC
Int64Float64String
142949672965.60914e-316#undef
" + "

1 rows × 3 columns

ABC
Int64Float64String
142949672963.57159e-316#undef
" ], "text/latex": [ "\\begin{tabular}{r|ccc}\n", @@ -634,7 +635,7 @@ "\t\\hline\n", "\t& Int64 & Float64 & String\\\\\n", "\t\\hline\n", - "\t1 & 4294967296 & 5.60914e-316 & \\#undef \\\\\n", + "\t1 & 4294967296 & 3.57159e-316 & \\#undef \\\\\n", "\\end{tabular}\n" ], "text/plain": [ @@ -642,7 +643,7 @@ "│ Row │ A │ B │ C │\n", "│ │ \u001b[90mInt64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mString\u001b[39m │\n", "├─────┼────────────┼──────────────┼────────┤\n", - "│ 1 │ 4294967296 │ 5.60914e-316 │ #undef │" + "│ 1 │ 4294967296 │ 3.57159e-316 │ #undef │" ] }, "execution_count": 15, @@ -886,7 +887,7 @@ { "data": { "text/html": [ - "

2 rows × 2 columns

ab
Int64Char
121725999824'\\x00\\x00\\x00\\x01'
2129279664'\\0'
" + "

2 rows × 2 columns

ab
Int64Char
1116482832'\\0'
2119063744'\\0'
" ], "text/latex": [ "\\begin{tabular}{r|cc}\n", @@ -894,17 +895,17 @@ "\t\\hline\n", "\t& Int64 & Char\\\\\n", "\t\\hline\n", - "\t1 & 21725999824 & '\\textbackslash{}x00\\textbackslash{}x00\\textbackslash{}x00\\textbackslash{}x01' \\\\\n", - "\t2 & 129279664 & '\\textbackslash{}0' \\\\\n", + "\t1 & 116482832 & '\\textbackslash{}0' \\\\\n", + "\t2 & 119063744 & '\\textbackslash{}0' \\\\\n", "\\end{tabular}\n" ], "text/plain": [ "2×2 DataFrame\n", - "│ Row │ a │ b │\n", - "│ │ \u001b[90mInt64\u001b[39m │ \u001b[90mChar\u001b[39m │\n", - "├─────┼─────────────┼────────────────────┤\n", - "│ 1 │ 21725999824 │ '\\x00\\x00\\x00\\x01' │\n", - "│ 2 │ 129279664 │ '\\0' │" + "│ Row │ a │ b │\n", + "│ │ \u001b[90mInt64\u001b[39m │ \u001b[90mChar\u001b[39m │\n", + "├─────┼───────────┼──────┤\n", + "│ 1 │ 116482832 │ '\\0' │\n", + "│ 2 │ 119063744 │ '\\0' │" ] }, "execution_count": 23, @@ -1412,17 +1413,16 @@ "metadata": {}, "outputs": [ { - "ename": "ErrorException", - "evalue": "cannot convert a DataFrame containing missing values to Matrix{Int64} (found for column y)", + "ename": "ArgumentError", + "evalue": "ArgumentError: cannot convert a DataFrame containing missing values to Matrix{Int64} (found for column y)", "output_type": "error", "traceback": [ - "cannot convert a DataFrame containing missing values to Matrix{Int64} (found for column y)", + "ArgumentError: cannot convert a DataFrame containing missing values to Matrix{Int64} (found for column y)", "", "Stacktrace:", - " [1] error(::String) at .\\error.jl:33", - " [2] convert(::Type{Array{Int64,2}}, ::DataFrame) at C:\\Users\\bogum\\.julia\\packages\\DataFrames\\Wvy9E\\src\\abstractdataframe\\abstractdataframe.jl:828", - " [3] Array{Int64,2}(::DataFrame) at C:\\Users\\bogum\\.julia\\packages\\DataFrames\\Wvy9E\\src\\abstractdataframe\\abstractdataframe.jl:838", - " [4] top-level scope at In[38]:1" + " [1] convert(::Type{Array{Int64,2}}, ::DataFrame) at C:\\Users\\bogum\\.julia\\packages\\DataFrames\\GoFnP\\src\\abstractdataframe\\abstractdataframe.jl:818", + " [2] Array{Int64,2}(::DataFrame) at C:\\Users\\bogum\\.julia\\packages\\DataFrames\\GoFnP\\src\\abstractdataframe\\abstractdataframe.jl:829", + " [3] top-level scope at In[38]:1" ] } ], @@ -1688,14 +1688,14 @@ "ArgumentError: Duplicate variable names: :a. Pass makeunique=true to make them unique using a suffix automatically.", "", "Stacktrace:", - " [1] #make_unique!#1(::Bool, ::Function, ::Array{Symbol,1}, ::Array{Symbol,1}) at C:\\Users\\bogum\\.julia\\packages\\DataFrames\\Wvy9E\\src\\other\\utils.jl:22", + " [1] #make_unique!#1(::Bool, ::Function, ::Array{Symbol,1}, ::Array{Symbol,1}) at C:\\Users\\bogum\\.julia\\packages\\DataFrames\\GoFnP\\src\\other\\utils.jl:22", " [2] #make_unique! at .\\none:0 [inlined]", - " [3] #make_unique#2 at C:\\Users\\bogum\\.julia\\packages\\DataFrames\\Wvy9E\\src\\other\\utils.jl:44 [inlined]", + " [3] #make_unique#2 at C:\\Users\\bogum\\.julia\\packages\\DataFrames\\GoFnP\\src\\other\\utils.jl:44 [inlined]", " [4] #make_unique at .\\none:0 [inlined]", - " [5] #Index#3 at C:\\Users\\bogum\\.julia\\packages\\DataFrames\\Wvy9E\\src\\other\\index.jl:14 [inlined]", + " [5] #Index#3 at C:\\Users\\bogum\\.julia\\packages\\DataFrames\\GoFnP\\src\\other\\index.jl:14 [inlined]", " [6] (::getfield(Core, Symbol(\"#kw#Type\")))(::NamedTuple{(:makeunique,),Tuple{Bool}}, ::Type{DataFrames.Index}, ::Array{Symbol,1}) at .\\none:0", - " [7] #DataFrame#89(::Bool, ::Bool, ::Type, ::Pair{Symbol,Int64}, ::Vararg{Pair{Symbol,Int64},N} where N) at C:\\Users\\bogum\\.julia\\packages\\DataFrames\\Wvy9E\\src\\dataframe\\dataframe.jl:141", - " [8] DataFrame(::Pair{Symbol,Int64}, ::Vararg{Pair{Symbol,Int64},N} where N) at C:\\Users\\bogum\\.julia\\packages\\DataFrames\\Wvy9E\\src\\dataframe\\dataframe.jl:139", + " [7] #DataFrame#96(::Bool, ::Bool, ::Type, ::Pair{Symbol,Int64}, ::Vararg{Pair{Symbol,Int64},N} where N) at C:\\Users\\bogum\\.julia\\packages\\DataFrames\\GoFnP\\src\\dataframe\\dataframe.jl:143", + " [8] DataFrame(::Pair{Symbol,Int64}, ::Vararg{Pair{Symbol,Int64},N} where N) at C:\\Users\\bogum\\.julia\\packages\\DataFrames\\GoFnP\\src\\dataframe\\dataframe.jl:141", " [9] top-level scope at In[46]:1" ] } @@ -1751,6 +1751,10 @@ } ], "metadata": { + "@webio": { + "lastCommId": null, + "lastKernelId": null + }, "kernelspec": { "display_name": "Julia 1.1.0", "language": "julia", diff --git a/02_basicinfo.ipynb b/02_basicinfo.ipynb index 960ac52..4efbce2 100644 --- a/02_basicinfo.ipynb +++ b/02_basicinfo.ipynb @@ -5,7 +5,7 @@ "metadata": {}, "source": [ "# Introduction to DataFrames\n", - "**[Bogumił Kamiński](http://bogumilkaminski.pl/about/), April 27, 2019**" + "**[Bogumił Kamiński](http://bogumilkaminski.pl/about/), July 16, 2019**" ] }, { @@ -14,7 +14,7 @@ "metadata": {}, "outputs": [], "source": [ - "using DataFrames # load package" + "using DataFrames" ] }, { @@ -240,7 +240,7 @@ { "data": { "text/html": [ - "

1,000 rows × 10 columns

x1x2x3x4x5x6x7x8x9x10
Int64Int64Int64Int64Int64Int64Int64Int64Int64Int64
144296191068
24443659258
325795810456
444346104759
56213526717
635884484102
7298101049247
84272225574
9110410941333
1022106814213
1154121922410
124442346444
13310521381045
14210662351072
15105341489610
16948575610104
1735715977107
183379155574
1931154371014
20897567101064
216146632557
2262638831108
234278336277
241010210926475
2515731410695
2646103617156
2773413599310
2811217684410
2913177101585
307186527337
" + "

1,000 rows × 10 columns

x1x2x3x4x5x6x7x8x9x10
Int64Int64Int64Int64Int64Int64Int64Int64Int64Int64
15865547124
264108112926
33976699636
465187951052
54274975776
672105685345
789116782710
82579656437
9776103515710
1012916365510
11275831052410
129646555672
1341686643210
1481024634975
152681026104510
1677101641944
17105108742259
18691044210144
1933104384543
205593835149
21101038915933
22391102107937
23410911052483
241231055101104
" ], "text/latex": [ "\\begin{tabular}{r|cccccccccc}\n", @@ -248,66 +248,54 @@ "\t\\hline\n", "\t& Int64 & Int64 & Int64 & Int64 & Int64 & Int64 & Int64 & Int64 & Int64 & Int64\\\\\n", "\t\\hline\n", - "\t1 & 4 & 4 & 2 & 9 & 6 & 1 & 9 & 10 & 6 & 8 \\\\\n", - "\t2 & 4 & 4 & 4 & 3 & 6 & 5 & 9 & 2 & 5 & 8 \\\\\n", - "\t3 & 2 & 5 & 7 & 9 & 5 & 8 & 10 & 4 & 5 & 6 \\\\\n", - "\t4 & 4 & 4 & 3 & 4 & 6 & 10 & 4 & 7 & 5 & 9 \\\\\n", - "\t5 & 6 & 2 & 1 & 3 & 5 & 2 & 6 & 7 & 1 & 7 \\\\\n", - "\t6 & 3 & 5 & 8 & 8 & 4 & 4 & 8 & 4 & 10 & 2 \\\\\n", - "\t7 & 2 & 9 & 8 & 10 & 10 & 4 & 9 & 2 & 4 & 7 \\\\\n", - "\t8 & 4 & 2 & 7 & 2 & 2 & 2 & 5 & 5 & 7 & 4 \\\\\n", - "\t9 & 1 & 10 & 4 & 10 & 9 & 4 & 1 & 3 & 3 & 3 \\\\\n", - "\t10 & 2 & 2 & 10 & 6 & 8 & 1 & 4 & 2 & 1 & 3 \\\\\n", - "\t11 & 5 & 4 & 1 & 2 & 1 & 9 & 2 & 2 & 4 & 10 \\\\\n", - "\t12 & 4 & 4 & 4 & 2 & 3 & 4 & 6 & 4 & 4 & 4 \\\\\n", - "\t13 & 3 & 10 & 5 & 2 & 1 & 3 & 8 & 10 & 4 & 5 \\\\\n", - "\t14 & 2 & 10 & 6 & 6 & 2 & 3 & 5 & 10 & 7 & 2 \\\\\n", - "\t15 & 10 & 5 & 3 & 4 & 1 & 4 & 8 & 9 & 6 & 10 \\\\\n", - "\t16 & 9 & 4 & 8 & 5 & 7 & 5 & 6 & 10 & 10 & 4 \\\\\n", - "\t17 & 3 & 5 & 7 & 1 & 5 & 9 & 7 & 7 & 10 & 7 \\\\\n", - "\t18 & 3 & 3 & 7 & 9 & 1 & 5 & 5 & 5 & 7 & 4 \\\\\n", - "\t19 & 3 & 1 & 1 & 5 & 4 & 3 & 7 & 10 & 1 & 4 \\\\\n", - "\t20 & 8 & 9 & 7 & 5 & 6 & 7 & 10 & 10 & 6 & 4 \\\\\n", - "\t21 & 6 & 1 & 4 & 6 & 6 & 3 & 2 & 5 & 5 & 7 \\\\\n", - "\t22 & 6 & 2 & 6 & 3 & 8 & 8 & 3 & 1 & 10 & 8 \\\\\n", - "\t23 & 4 & 2 & 7 & 8 & 3 & 3 & 6 & 2 & 7 & 7 \\\\\n", - "\t24 & 10 & 10 & 2 & 10 & 9 & 2 & 6 & 4 & 7 & 5 \\\\\n", - "\t25 & 1 & 5 & 7 & 3 & 1 & 4 & 10 & 6 & 9 & 5 \\\\\n", - "\t26 & 4 & 6 & 10 & 3 & 6 & 1 & 7 & 1 & 5 & 6 \\\\\n", - "\t27 & 7 & 3 & 4 & 1 & 3 & 5 & 9 & 9 & 3 & 10 \\\\\n", - "\t28 & 1 & 1 & 2 & 1 & 7 & 6 & 8 & 4 & 4 & 10 \\\\\n", - "\t29 & 1 & 3 & 1 & 7 & 7 & 10 & 1 & 5 & 8 & 5 \\\\\n", - "\t30 & 7 & 1 & 8 & 6 & 5 & 2 & 7 & 3 & 3 & 7 \\\\\n", + "\t1 & 5 & 8 & 6 & 5 & 5 & 4 & 7 & 1 & 2 & 4 \\\\\n", + "\t2 & 6 & 4 & 10 & 8 & 1 & 1 & 2 & 9 & 2 & 6 \\\\\n", + "\t3 & 3 & 9 & 7 & 6 & 6 & 9 & 9 & 6 & 3 & 6 \\\\\n", + "\t4 & 6 & 5 & 1 & 8 & 7 & 9 & 5 & 10 & 5 & 2 \\\\\n", + "\t5 & 4 & 2 & 7 & 4 & 9 & 7 & 5 & 7 & 7 & 6 \\\\\n", + "\t6 & 7 & 2 & 10 & 5 & 6 & 8 & 5 & 3 & 4 & 5 \\\\\n", + "\t7 & 8 & 9 & 1 & 1 & 6 & 7 & 8 & 2 & 7 & 10 \\\\\n", + "\t8 & 2 & 5 & 7 & 9 & 6 & 5 & 6 & 4 & 3 & 7 \\\\\n", + "\t9 & 7 & 7 & 6 & 10 & 3 & 5 & 1 & 5 & 7 & 10 \\\\\n", + "\t10 & 1 & 2 & 9 & 1 & 6 & 3 & 6 & 5 & 5 & 10 \\\\\n", + "\t11 & 2 & 7 & 5 & 8 & 3 & 10 & 5 & 2 & 4 & 10 \\\\\n", + "\t12 & 9 & 6 & 4 & 6 & 5 & 5 & 5 & 6 & 7 & 2 \\\\\n", + "\t13 & 4 & 1 & 6 & 8 & 6 & 6 & 4 & 3 & 2 & 10 \\\\\n", + "\t14 & 8 & 10 & 2 & 4 & 6 & 3 & 4 & 9 & 7 & 5 \\\\\n", + "\t15 & 2 & 6 & 8 & 10 & 2 & 6 & 10 & 4 & 5 & 10 \\\\\n", + "\t16 & 7 & 7 & 10 & 1 & 6 & 4 & 1 & 9 & 4 & 4 \\\\\n", + "\t17 & 10 & 5 & 10 & 8 & 7 & 4 & 2 & 2 & 5 & 9 \\\\\n", + "\t18 & 6 & 9 & 10 & 4 & 4 & 2 & 10 & 1 & 4 & 4 \\\\\n", + "\t19 & 3 & 3 & 10 & 4 & 3 & 8 & 4 & 5 & 4 & 3 \\\\\n", + "\t20 & 5 & 5 & 9 & 3 & 8 & 3 & 5 & 1 & 4 & 9 \\\\\n", + "\t21 & 10 & 10 & 3 & 8 & 9 & 1 & 5 & 9 & 3 & 3 \\\\\n", + "\t22 & 3 & 9 & 1 & 10 & 2 & 10 & 7 & 9 & 3 & 7 \\\\\n", + "\t23 & 4 & 10 & 9 & 1 & 10 & 5 & 2 & 4 & 8 & 3 \\\\\n", + "\t24 & 1 & 2 & 3 & 10 & 5 & 5 & 10 & 1 & 10 & 4 \\\\\n", "\t$\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ \\\\\n", "\\end{tabular}\n" ], "text/plain": [ - "1000×10 DataFrame. Omitted printing of 1 columns\n", - "│ Row │ x1 │ x2 │ x3 │ x4 │ x5 │ x6 │ x7 │ x8 │ x9 │\n", - "│ │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │\n", - "├──────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤\n", - "│ 1 │ 4 │ 4 │ 2 │ 9 │ 6 │ 1 │ 9 │ 10 │ 6 │\n", - "│ 2 │ 4 │ 4 │ 4 │ 3 │ 6 │ 5 │ 9 │ 2 │ 5 │\n", - "│ 3 │ 2 │ 5 │ 7 │ 9 │ 5 │ 8 │ 10 │ 4 │ 5 │\n", - "│ 4 │ 4 │ 4 │ 3 │ 4 │ 6 │ 10 │ 4 │ 7 │ 5 │\n", - "│ 5 │ 6 │ 2 │ 1 │ 3 │ 5 │ 2 │ 6 │ 7 │ 1 │\n", - "│ 6 │ 3 │ 5 │ 8 │ 8 │ 4 │ 4 │ 8 │ 4 │ 10 │\n", - "│ 7 │ 2 │ 9 │ 8 │ 10 │ 10 │ 4 │ 9 │ 2 │ 4 │\n", - "│ 8 │ 4 │ 2 │ 7 │ 2 │ 2 │ 2 │ 5 │ 5 │ 7 │\n", - "│ 9 │ 1 │ 10 │ 4 │ 10 │ 9 │ 4 │ 1 │ 3 │ 3 │\n", - "│ 10 │ 2 │ 2 │ 10 │ 6 │ 8 │ 1 │ 4 │ 2 │ 1 │\n", + "1000×10 DataFrame\n", + "│ Row │ x1 │ x2 │ x3 │ x4 │ x5 │ x6 │ x7 │ x8 │ x9 │ x10 │\n", + "│ │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │\n", + "├──────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤\n", + "│ 1 │ 5 │ 8 │ 6 │ 5 │ 5 │ 4 │ 7 │ 1 │ 2 │ 4 │\n", + "│ 2 │ 6 │ 4 │ 10 │ 8 │ 1 │ 1 │ 2 │ 9 │ 2 │ 6 │\n", + "│ 3 │ 3 │ 9 │ 7 │ 6 │ 6 │ 9 │ 9 │ 6 │ 3 │ 6 │\n", + "│ 4 │ 6 │ 5 │ 1 │ 8 │ 7 │ 9 │ 5 │ 10 │ 5 │ 2 │\n", + "│ 5 │ 4 │ 2 │ 7 │ 4 │ 9 │ 7 │ 5 │ 7 │ 7 │ 6 │\n", + "│ 6 │ 7 │ 2 │ 10 │ 5 │ 6 │ 8 │ 5 │ 3 │ 4 │ 5 │\n", + "│ 7 │ 8 │ 9 │ 1 │ 1 │ 6 │ 7 │ 8 │ 2 │ 7 │ 10 │\n", "⋮\n", - "│ 990 │ 3 │ 2 │ 1 │ 8 │ 3 │ 2 │ 10 │ 6 │ 6 │\n", - "│ 991 │ 2 │ 6 │ 1 │ 9 │ 8 │ 5 │ 5 │ 9 │ 2 │\n", - "│ 992 │ 8 │ 5 │ 10 │ 10 │ 9 │ 9 │ 8 │ 10 │ 8 │\n", - "│ 993 │ 5 │ 1 │ 6 │ 8 │ 4 │ 1 │ 7 │ 4 │ 3 │\n", - "│ 994 │ 5 │ 7 │ 9 │ 7 │ 2 │ 5 │ 1 │ 7 │ 10 │\n", - "│ 995 │ 2 │ 10 │ 6 │ 4 │ 3 │ 7 │ 3 │ 3 │ 7 │\n", - "│ 996 │ 10 │ 5 │ 9 │ 5 │ 10 │ 8 │ 5 │ 3 │ 9 │\n", - "│ 997 │ 9 │ 4 │ 10 │ 10 │ 10 │ 5 │ 8 │ 4 │ 9 │\n", - "│ 998 │ 6 │ 3 │ 1 │ 3 │ 4 │ 6 │ 8 │ 2 │ 2 │\n", - "│ 999 │ 3 │ 1 │ 10 │ 2 │ 8 │ 2 │ 1 │ 2 │ 6 │\n", - "│ 1000 │ 10 │ 7 │ 9 │ 5 │ 1 │ 5 │ 6 │ 4 │ 4 │" + "│ 993 │ 5 │ 7 │ 7 │ 1 │ 6 │ 4 │ 2 │ 5 │ 2 │ 10 │\n", + "│ 994 │ 9 │ 2 │ 5 │ 4 │ 6 │ 7 │ 9 │ 7 │ 6 │ 2 │\n", + "│ 995 │ 2 │ 3 │ 8 │ 8 │ 3 │ 3 │ 1 │ 2 │ 9 │ 8 │\n", + "│ 996 │ 3 │ 7 │ 9 │ 4 │ 10 │ 10 │ 1 │ 3 │ 9 │ 2 │\n", + "│ 997 │ 7 │ 6 │ 8 │ 4 │ 2 │ 6 │ 4 │ 4 │ 3 │ 8 │\n", + "│ 998 │ 6 │ 1 │ 7 │ 9 │ 7 │ 2 │ 6 │ 4 │ 6 │ 2 │\n", + "│ 999 │ 1 │ 10 │ 10 │ 1 │ 2 │ 10 │ 4 │ 8 │ 10 │ 4 │\n", + "│ 1000 │ 5 │ 3 │ 10 │ 2 │ 10 │ 2 │ 10 │ 3 │ 7 │ 5 │" ] }, "execution_count": 8, @@ -334,7 +322,7 @@ { "data": { "text/html": [ - "

5 rows × 10 columns

x1x2x3x4x5x6x7x8x9x10
Int64Int64Int64Int64Int64Int64Int64Int64Int64Int64
144296191068
24443659258
325795810456
444346104759
56213526717
" + "

5 rows × 10 columns

x1x2x3x4x5x6x7x8x9x10
Int64Int64Int64Int64Int64Int64Int64Int64Int64Int64
15865547124
264108112926
33976699636
465187951052
54274975776
" ], "text/latex": [ "\\begin{tabular}{r|cccccccccc}\n", @@ -342,23 +330,23 @@ "\t\\hline\n", "\t& Int64 & Int64 & Int64 & Int64 & Int64 & Int64 & Int64 & Int64 & Int64 & Int64\\\\\n", "\t\\hline\n", - "\t1 & 4 & 4 & 2 & 9 & 6 & 1 & 9 & 10 & 6 & 8 \\\\\n", - "\t2 & 4 & 4 & 4 & 3 & 6 & 5 & 9 & 2 & 5 & 8 \\\\\n", - "\t3 & 2 & 5 & 7 & 9 & 5 & 8 & 10 & 4 & 5 & 6 \\\\\n", - "\t4 & 4 & 4 & 3 & 4 & 6 & 10 & 4 & 7 & 5 & 9 \\\\\n", - "\t5 & 6 & 2 & 1 & 3 & 5 & 2 & 6 & 7 & 1 & 7 \\\\\n", + "\t1 & 5 & 8 & 6 & 5 & 5 & 4 & 7 & 1 & 2 & 4 \\\\\n", + "\t2 & 6 & 4 & 10 & 8 & 1 & 1 & 2 & 9 & 2 & 6 \\\\\n", + "\t3 & 3 & 9 & 7 & 6 & 6 & 9 & 9 & 6 & 3 & 6 \\\\\n", + "\t4 & 6 & 5 & 1 & 8 & 7 & 9 & 5 & 10 & 5 & 2 \\\\\n", + "\t5 & 4 & 2 & 7 & 4 & 9 & 7 & 5 & 7 & 7 & 6 \\\\\n", "\\end{tabular}\n" ], "text/plain": [ - "5×10 DataFrame. Omitted printing of 1 columns\n", - "│ Row │ x1 │ x2 │ x3 │ x4 │ x5 │ x6 │ x7 │ x8 │ x9 │\n", - "│ │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │\n", - "├─────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤\n", - "│ 1 │ 4 │ 4 │ 2 │ 9 │ 6 │ 1 │ 9 │ 10 │ 6 │\n", - "│ 2 │ 4 │ 4 │ 4 │ 3 │ 6 │ 5 │ 9 │ 2 │ 5 │\n", - "│ 3 │ 2 │ 5 │ 7 │ 9 │ 5 │ 8 │ 10 │ 4 │ 5 │\n", - "│ 4 │ 4 │ 4 │ 3 │ 4 │ 6 │ 10 │ 4 │ 7 │ 5 │\n", - "│ 5 │ 6 │ 2 │ 1 │ 3 │ 5 │ 2 │ 6 │ 7 │ 1 │" + "5×10 DataFrame\n", + "│ Row │ x1 │ x2 │ x3 │ x4 │ x5 │ x6 │ x7 │ x8 │ x9 │ x10 │\n", + "│ │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │\n", + "├─────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤\n", + "│ 1 │ 5 │ 8 │ 6 │ 5 │ 5 │ 4 │ 7 │ 1 │ 2 │ 4 │\n", + "│ 2 │ 6 │ 4 │ 10 │ 8 │ 1 │ 1 │ 2 │ 9 │ 2 │ 6 │\n", + "│ 3 │ 3 │ 9 │ 7 │ 6 │ 6 │ 9 │ 9 │ 6 │ 3 │ 6 │\n", + "│ 4 │ 6 │ 5 │ 1 │ 8 │ 7 │ 9 │ 5 │ 10 │ 5 │ 2 │\n", + "│ 5 │ 4 │ 2 │ 7 │ 4 │ 9 │ 7 │ 5 │ 7 │ 7 │ 6 │" ] }, "execution_count": 9, @@ -385,7 +373,7 @@ { "data": { "text/html": [ - "

3 rows × 10 columns

x1x2x3x4x5x6x7x8x9x10
Int64Int64Int64Int64Int64Int64Int64Int64Int64Int64
16313468224
231102821269
310795156449
" + "

3 rows × 10 columns

x1x2x3x4x5x6x7x8x9x10
Int64Int64Int64Int64Int64Int64Int64Int64Int64Int64
16179726462
211010121048104
35310210210375
" ], "text/latex": [ "\\begin{tabular}{r|cccccccccc}\n", @@ -393,19 +381,19 @@ "\t\\hline\n", "\t& Int64 & Int64 & Int64 & Int64 & Int64 & Int64 & Int64 & Int64 & Int64 & Int64\\\\\n", "\t\\hline\n", - "\t1 & 6 & 3 & 1 & 3 & 4 & 6 & 8 & 2 & 2 & 4 \\\\\n", - "\t2 & 3 & 1 & 10 & 2 & 8 & 2 & 1 & 2 & 6 & 9 \\\\\n", - "\t3 & 10 & 7 & 9 & 5 & 1 & 5 & 6 & 4 & 4 & 9 \\\\\n", + "\t1 & 6 & 1 & 7 & 9 & 7 & 2 & 6 & 4 & 6 & 2 \\\\\n", + "\t2 & 1 & 10 & 10 & 1 & 2 & 10 & 4 & 8 & 10 & 4 \\\\\n", + "\t3 & 5 & 3 & 10 & 2 & 10 & 2 & 10 & 3 & 7 & 5 \\\\\n", "\\end{tabular}\n" ], "text/plain": [ - "3×10 DataFrame. Omitted printing of 1 columns\n", - "│ Row │ x1 │ x2 │ x3 │ x4 │ x5 │ x6 │ x7 │ x8 │ x9 │\n", - "│ │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │\n", - "├─────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤\n", - "│ 1 │ 6 │ 3 │ 1 │ 3 │ 4 │ 6 │ 8 │ 2 │ 2 │\n", - "│ 2 │ 3 │ 1 │ 10 │ 2 │ 8 │ 2 │ 1 │ 2 │ 6 │\n", - "│ 3 │ 10 │ 7 │ 9 │ 5 │ 1 │ 5 │ 6 │ 4 │ 4 │" + "3×10 DataFrame\n", + "│ Row │ x1 │ x2 │ x3 │ x4 │ x5 │ x6 │ x7 │ x8 │ x9 │ x10 │\n", + "│ │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │\n", + "├─────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤\n", + "│ 1 │ 6 │ 1 │ 7 │ 9 │ 7 │ 2 │ 6 │ 4 │ 6 │ 2 │\n", + "│ 2 │ 1 │ 10 │ 10 │ 1 │ 2 │ 10 │ 4 │ 8 │ 10 │ 4 │\n", + "│ 3 │ 5 │ 3 │ 10 │ 2 │ 10 │ 2 │ 10 │ 3 │ 7 │ 5 │" ] }, "execution_count": 10, @@ -432,7 +420,7 @@ { "data": { "text/html": [ - "

DataFrameRow

1 rows × 10 columns

x1x2x3x4x5x6x7x8x9x10
Int64Int64Int64Int64Int64Int64Int64Int64Int64Int64
144296191068
" + "

DataFrameRow

1 rows × 10 columns

x1x2x3x4x5x6x7x8x9x10
Int64Int64Int64Int64Int64Int64Int64Int64Int64Int64
15865547124
" ], "text/latex": [ "\\begin{tabular}{r|cccccccccc}\n", @@ -440,15 +428,15 @@ "\t\\hline\n", "\t& Int64 & Int64 & Int64 & Int64 & Int64 & Int64 & Int64 & Int64 & Int64 & Int64\\\\\n", "\t\\hline\n", - "\t1 & 4 & 4 & 2 & 9 & 6 & 1 & 9 & 10 & 6 & 8 \\\\\n", + "\t1 & 5 & 8 & 6 & 5 & 5 & 4 & 7 & 1 & 2 & 4 \\\\\n", "\\end{tabular}\n" ], "text/plain": [ - "DataFrameRow. Omitted printing of 1 columns\n", - "│ Row │ x1 │ x2 │ x3 │ x4 │ x5 │ x6 │ x7 │ x8 │ x9 │\n", - "│ │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │\n", - "├─────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤\n", - "│ 1 │ 4 │ 4 │ 2 │ 9 │ 6 │ 1 │ 9 │ 10 │ 6 │" + "DataFrameRow\n", + "│ Row │ x1 │ x2 │ x3 │ x4 │ x5 │ x6 │ x7 │ x8 │ x9 │ x10 │\n", + "│ │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │\n", + "├─────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤\n", + "│ 1 │ 5 │ 8 │ 6 │ 5 │ 5 │ 4 │ 7 │ 1 │ 2 │ 4 │" ] }, "execution_count": 11, @@ -468,7 +456,7 @@ { "data": { "text/html": [ - "

DataFrameRow

1 rows × 10 columns

x1x2x3x4x5x6x7x8x9x10
Int64Int64Int64Int64Int64Int64Int64Int64Int64Int64
100010795156449
" + "

DataFrameRow

1 rows × 10 columns

x1x2x3x4x5x6x7x8x9x10
Int64Int64Int64Int64Int64Int64Int64Int64Int64Int64
10005310210210375
" ], "text/latex": [ "\\begin{tabular}{r|cccccccccc}\n", @@ -476,15 +464,15 @@ "\t\\hline\n", "\t& Int64 & Int64 & Int64 & Int64 & Int64 & Int64 & Int64 & Int64 & Int64 & Int64\\\\\n", "\t\\hline\n", - "\t1000 & 10 & 7 & 9 & 5 & 1 & 5 & 6 & 4 & 4 & 9 \\\\\n", + "\t1000 & 5 & 3 & 10 & 2 & 10 & 2 & 10 & 3 & 7 & 5 \\\\\n", "\\end{tabular}\n" ], "text/plain": [ - "DataFrameRow. Omitted printing of 1 columns\n", - "│ Row │ x1 │ x2 │ x3 │ x4 │ x5 │ x6 │ x7 │ x8 │ x9 │\n", - "│ │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │\n", - "├──────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤\n", - "│ 1000 │ 10 │ 7 │ 9 │ 5 │ 1 │ 5 │ 6 │ 4 │ 4 │" + "DataFrameRow\n", + "│ Row │ x1 │ x2 │ x3 │ x4 │ x5 │ x6 │ x7 │ x8 │ x9 │ x10 │\n", + "│ │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │\n", + "├──────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┤\n", + "│ 1000 │ 5 │ 3 │ 10 │ 2 │ 10 │ 2 │ 10 │ 3 │ 7 │ 5 │" ] }, "execution_count": 12, @@ -502,9 +490,7 @@ "source": [ "### Most elementary get and set operations\n", "\n", - "Given the `DataFrame`, `x`, here are four ways to grab one of its columns as a `Vector`.\n", - "\n", - "*Note that since Julia 1.0 you can access column name using `.` operator.*" + "Given the `DataFrame`, `x`, here are four ways to grab one of its columns as a `Vector`." ] }, { @@ -562,7 +548,7 @@ } ], "source": [ - "x[1], x[:A], x.A # all get the vector stored in our DataFrame without copying it" + "x.A, x[!, 1], x[!, :A] # all get the vector stored in our DataFrame without copying it" ] }, { @@ -762,13 +748,132 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Assignment can be done in ranges to a scalar," + "You can also use `Regex` to select columns and `Not` from InvertedIndices.jl both to select rows and columns" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "

1 rows × 1 columns

A
Int64
12
" + ], + "text/latex": [ + "\\begin{tabular}{r|c}\n", + "\t& A\\\\\n", + "\t\\hline\n", + "\t& Int64\\\\\n", + "\t\\hline\n", + "\t1 & 2 \\\\\n", + "\\end{tabular}\n" + ], + "text/plain": [ + "1×1 DataFrame\n", + "│ Row │ A │\n", + "│ │ \u001b[90mInt64\u001b[39m │\n", + "├─────┼───────┤\n", + "│ 1 │ 2 │" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "x[Not(1), r\"A\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "

2 rows × 2 columns

BC
Float64⍰String
11.0a
2missingb
" + ], + "text/latex": [ + "\\begin{tabular}{r|cc}\n", + "\t& B & C\\\\\n", + "\t\\hline\n", + "\t& Float64⍰ & String\\\\\n", + "\t\\hline\n", + "\t1 & 1.0 & a \\\\\n", + "\t2 & & b \\\\\n", + "\\end{tabular}\n" + ], + "text/plain": [ + "2×2 DataFrame\n", + "│ Row │ B │ C │\n", + "│ │ \u001b[90mFloat64⍰\u001b[39m │ \u001b[90mString\u001b[39m │\n", + "├─────┼──────────┼────────┤\n", + "│ 1 │ 1.0 │ a │\n", + "│ 2 │ \u001b[90mmissing\u001b[39m │ b │" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "x[!, Not(1)] # ! indicates that underlying columns are not copied" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "

2 rows × 2 columns

BC
Float64⍰String
11.0a
2missingb
" + ], + "text/latex": [ + "\\begin{tabular}{r|cc}\n", + "\t& B & C\\\\\n", + "\t\\hline\n", + "\t& Float64⍰ & String\\\\\n", + "\t\\hline\n", + "\t1 & 1.0 & a \\\\\n", + "\t2 & & b \\\\\n", + "\\end{tabular}\n" + ], + "text/plain": [ + "2×2 DataFrame\n", + "│ Row │ B │ C │\n", + "│ │ \u001b[90mFloat64⍰\u001b[39m │ \u001b[90mString\u001b[39m │\n", + "├─────┼──────────┼────────┤\n", + "│ 1 │ 1.0 │ a │\n", + "│ 2 │ \u001b[90mmissing\u001b[39m │ b │" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "x[:, Not(1)] # : means that the columns will get copied" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Assignment can be done in ranges to a scalar using broadcasting:" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, "outputs": [ { "data": { @@ -794,13 +899,13 @@ "│ 2 │ 1 │ 1.0 │ b │" ] }, - "execution_count": 21, + "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "x[1:2, 1:2] = 1\n", + "x[1:2, 1:2] .= 1\n", "x" ] }, @@ -808,12 +913,12 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "to a vector of length equal to the number of assigned rows," + "to a vector of length equal to the number of assigned rows using broadcasting" ] }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 25, "metadata": {}, "outputs": [ { @@ -840,13 +945,13 @@ "│ 2 │ 2 │ 2.0 │ b │" ] }, - "execution_count": 22, + "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "x[1:2, 1:2] = [1,2]\n", + "x[1:2, 1:2] .= [1,2]\n", "x" ] }, @@ -854,12 +959,12 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "or to another data frame of matching size." + "or to another data frame of matching size and column names, again using broadcasting:" ] }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 26, "metadata": {}, "outputs": [ { @@ -886,16 +991,31 @@ "│ 2 │ 7 │ 8.0 │ b │" ] }, - "execution_count": 23, + "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "x[1:2, 1:2] = DataFrame([5 6; 7 8])\n", + "x[1:2, 1:2] .= DataFrame([5 6; 7 8], [:A, :B])\n", "x" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Caution**\n", + "\n", + "With `df[!, :col]` and `df.col` syntax you get a direct (non copying) access to a column of a data frame.\n", + "This is potentially unsafe as you can easily corrupt data in the `df` data frame if you resize, sort, etc. the column obtained in this way.\n", + "Therefore such access should be used with caution.\n", + "\n", + "Similarly `df[!, cols]` when `cols` is a collection of columns produces a new data frame that holds the same (not copied) columns as the source `df` data frame. Similarly, modifying the data frame obtained via `df[!, cols]` might cause problems with the consistency of `df`.\n", + "\n", + "The `df[:, :col]` and `df[:, cols]` syntaxes always copy columns so they are safe to use (and should generally be preferred except for performance or memory critical use cases)." + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -912,7 +1032,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 27, "metadata": {}, "outputs": [ { @@ -923,7 +1043,7 @@ " 7" ] }, - "execution_count": 24, + "execution_count": 27, "metadata": {}, "output_type": "execute_result" } @@ -934,7 +1054,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 28, "metadata": {}, "outputs": [ { @@ -944,7 +1064,7 @@ "5" ] }, - "execution_count": 25, + "execution_count": 28, "metadata": {}, "output_type": "execute_result" } @@ -955,7 +1075,7 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 29, "metadata": {}, "outputs": [ { @@ -980,7 +1100,7 @@ "│ 1 │ 5 │ 6.0 │" ] }, - "execution_count": 26, + "execution_count": 29, "metadata": {}, "output_type": "execute_result" } @@ -991,7 +1111,7 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 30, "metadata": {}, "outputs": [ { @@ -1018,7 +1138,7 @@ "│ 2 │ 7 │ 8.0 │" ] }, - "execution_count": 27, + "execution_count": 30, "metadata": {}, "output_type": "execute_result" } @@ -1029,10 +1149,14 @@ } ], "metadata": { + "@webio": { + "lastCommId": null, + "lastKernelId": null + }, "kernelspec": { - "display_name": "Julia 1.0.3", + "display_name": "Julia 1.1.0", "language": "julia", - "name": "julia-1.0" + "name": "julia-1.1" }, "language_info": { "file_extension": ".jl", diff --git a/03_missingvalues.ipynb b/03_missingvalues.ipynb index 96cb30e..11b0084 100644 --- a/03_missingvalues.ipynb +++ b/03_missingvalues.ipynb @@ -5,7 +5,7 @@ "metadata": {}, "source": [ "# Introduction to DataFrames\n", - "**[Bogumił Kamiński](http://bogumilkaminski.pl/about/), April 30, 2019**" + "**[Bogumił Kamiński](http://bogumilkaminski.pl/about/), July 16, 2019**" ] }, { @@ -14,7 +14,7 @@ "metadata": {}, "outputs": [], "source": [ - "using DataFrames # load package" + "using DataFrames" ] }, { @@ -1159,10 +1159,14 @@ } ], "metadata": { + "@webio": { + "lastCommId": null, + "lastKernelId": null + }, "kernelspec": { - "display_name": "Julia 1.0.3", + "display_name": "Julia 1.1.0", "language": "julia", - "name": "julia-1.0" + "name": "julia-1.1" }, "language_info": { "file_extension": ".jl", diff --git a/04_loadsave.ipynb b/04_loadsave.ipynb index cabfd93..2a89f7c 100644 --- a/04_loadsave.ipynb +++ b/04_loadsave.ipynb @@ -5,7 +5,7 @@ "metadata": {}, "source": [ "# Introduction to DataFrames\n", - "**[Bogumił Kamiński](http://bogumilkaminski.pl/about/), April 27, 2019**" + "**[Bogumił Kamiński](http://bogumilkaminski.pl/about/), July 16, 2019**" ] }, { @@ -14,7 +14,7 @@ "metadata": {}, "outputs": [], "source": [ - "using DataFrames # load package" + "using DataFrames" ] }, { @@ -194,13 +194,13 @@ { "data": { "text/html": [ - "

3 rows × 4 columns

ABCD
Bool⍰Int64⍰String⍰String⍰
1true1missinga
2false2bmissing
3truemissingcc
" + "

3 rows × 4 columns

ABCD
BoolInt64⍰String⍰String⍰
1true1missinga
2false2bmissing
3truemissingcc
" ], "text/latex": [ "\\begin{tabular}{r|cccc}\n", "\t& A & B & C & D\\\\\n", "\t\\hline\n", - "\t& Bool⍰ & Int64⍰ & String⍰ & String⍰\\\\\n", + "\t& Bool & Int64⍰ & String⍰ & String⍰\\\\\n", "\t\\hline\n", "\t1 & true & 1 & & a \\\\\n", "\t2 & false & 2 & b & \\\\\n", @@ -210,7 +210,7 @@ "text/plain": [ "3×4 DataFrame\n", "│ Row │ A │ B │ C │ D │\n", - "│ │ \u001b[90mBool⍰\u001b[39m │ \u001b[90mInt64⍰\u001b[39m │ \u001b[90mString⍰\u001b[39m │ \u001b[90mString⍰\u001b[39m │\n", + "│ │ \u001b[90mBool\u001b[39m │ \u001b[90mInt64⍰\u001b[39m │ \u001b[90mString⍰\u001b[39m │ \u001b[90mString⍰\u001b[39m │\n", "├─────┼───────┼─────────┼─────────┼─────────┤\n", "│ 1 │ true │ 1 │ \u001b[90mmissing\u001b[39m │ a │\n", "│ 2 │ false │ 2 │ b │ \u001b[90mmissing\u001b[39m │\n", @@ -241,8 +241,8 @@ { "data": { "text/plain": [ - "4-element Array{Union,1}:\n", - " Union{Missing, Bool} \n", + "4-element Array{Type,1}:\n", + " Bool \n", " Union{Missing, Int64} \n", " Union{Missing, String}\n", " Union{Missing, String}" @@ -635,25 +635,25 @@ "output_type": "stream", "text": [ "First run\n", - " 0.745948 seconds (814.64 k allocations: 40.707 MiB, 4.48% gc time)\n", - " 1.050906 seconds (830.88 k allocations: 42.539 MiB, 2.87% gc time)\n", - " 0.213652 seconds (427.49 k allocations: 21.266 MiB)\n", - " 0.318751 seconds (373.35 k allocations: 25.882 MiB, 9.61% gc time)\n", + " 1.234840 seconds (1.37 M allocations: 68.621 MiB, 3.34% gc time)\n", + " 1.502894 seconds (929.64 k allocations: 47.285 MiB, 1.93% gc time)\n", + " 0.275374 seconds (427.33 k allocations: 21.270 MiB, 5.51% gc time)\n", + " 0.352993 seconds (397.80 k allocations: 27.044 MiB, 3.63% gc time)\n", "Second run\n", - " 0.024630 seconds (54.97 k allocations: 1.052 MiB)\n", - " 0.016964 seconds (5.53 k allocations: 340.375 KiB)\n", - " 0.022761 seconds (4.81 k allocations: 243.089 KiB)\n", - " 0.018969 seconds (34.02 k allocations: 9.008 MiB)\n" + " 0.024408 seconds (6.57 k allocations: 292.781 KiB)\n", + " 0.017290 seconds (5.54 k allocations: 342.203 KiB)\n", + " 0.019022 seconds (4.81 k allocations: 243.089 KiB)\n", + " 0.042060 seconds (34.02 k allocations: 9.023 MiB, 28.03% gc time)\n" ] }, { "data": { "text/plain": [ "4-element Array{Int64,1}:\n", - " 558378\n", - " 558578\n", - " 84439\n", - " 54072" + " 558383\n", + " 558583\n", + " 84312\n", + " 54096" ] }, "execution_count": 20, @@ -663,9 +663,9 @@ ], "source": [ "bigdf = DataFrame(rand(Bool, 10^3, 10^2))\n", - "bigdf[1] = Int.(bigdf[1])\n", - "bigdf[2] = bigdf[2] .+ 0.5\n", - "bigdf[3] = string.(bigdf[3], \", as string\")\n", + "bigdf[!, 1] = Int.(bigdf[!, 1])\n", + "bigdf[!, 2] = bigdf[!, 2] .+ 0.5\n", + "bigdf[!, 3] = string.(bigdf[!, 3], \", as string\")\n", "println(\"First run\")\n", "@time CSV.write(\"bigdf1.csv\", bigdf)\n", "@time bigdf |> save(\"bigdf2.csv\")\n", @@ -689,15 +689,15 @@ "output_type": "stream", "text": [ "First run\n", - " 0.622640 seconds (802.64 k allocations: 28.521 MiB, 2.97% gc time)\n", - " 1.679781 seconds (2.60 M allocations: 218.270 MiB, 8.63% gc time)\n", - " 0.042708 seconds (72.82 k allocations: 2.008 MiB)\n", - " 0.673740 seconds (639.10 k allocations: 32.375 MiB, 4.97% gc time)\n", + " 0.112875 seconds (86.70 k allocations: 4.845 MiB)\n", + " 1.787776 seconds (2.63 M allocations: 219.289 MiB, 6.75% gc time)\n", + " 0.044459 seconds (72.82 k allocations: 2.008 MiB)\n", + " 0.562682 seconds (640.06 k allocations: 32.471 MiB, 4.13% gc time)\n", "Second run\n", - " 0.048690 seconds (52.07 k allocations: 1.326 MiB)\n", - " 0.099486 seconds (506.49 k allocations: 108.821 MiB, 54.91% gc time)\n", - " 0.006630 seconds (49.60 k allocations: 951.719 KiB)\n", - " 0.007290 seconds (26.39 k allocations: 1.200 MiB)\n" + " 0.010963 seconds (2.15 k allocations: 85.773 KiB)\n", + " 0.101021 seconds (506.69 k allocations: 108.049 MiB, 52.35% gc time)\n", + " 0.007702 seconds (49.60 k allocations: 952.109 KiB)\n", + " 0.007236 seconds (26.39 k allocations: 1.201 MiB)\n" ] } ], @@ -733,10 +733,14 @@ } ], "metadata": { + "@webio": { + "lastCommId": null, + "lastKernelId": null + }, "kernelspec": { - "display_name": "Julia 1.0.3", + "display_name": "Julia 1.1.0", "language": "julia", - "name": "julia-1.0" + "name": "julia-1.1" }, "language_info": { "file_extension": ".jl", diff --git a/05_columns.ipynb b/05_columns.ipynb index 6dc978e..a5a47f5 100644 --- a/05_columns.ipynb +++ b/05_columns.ipynb @@ -5,7 +5,7 @@ "metadata": {}, "source": [ "# Introduction to DataFrames\n", - "**[Bogumił Kamiński](http://bogumilkaminski.pl/about/), April 27, 2019**" + "**[Bogumił Kamiński](http://bogumilkaminski.pl/about/), July 16, 2019**" ] }, { @@ -14,7 +14,7 @@ "metadata": {}, "outputs": [], "source": [ - "using DataFrames # load package" + "using DataFrames" ] }, { @@ -41,7 +41,7 @@ { "data": { "text/html": [ - "

3 rows × 4 columns

x1x2x3x4
BoolBoolBoolBool
1truefalsefalsetrue
2falsefalsetruetrue
3truetruetruefalse
" + "

3 rows × 4 columns

x1x2x3x4
BoolBoolBoolBool
1falsefalsefalsetrue
2truetruefalsefalse
3truetruetruetrue
" ], "text/latex": [ "\\begin{tabular}{r|cccc}\n", @@ -49,9 +49,9 @@ "\t\\hline\n", "\t& Bool & Bool & Bool & Bool\\\\\n", "\t\\hline\n", - "\t1 & true & false & false & true \\\\\n", - "\t2 & false & false & true & true \\\\\n", - "\t3 & true & true & true & false \\\\\n", + "\t1 & false & false & false & true \\\\\n", + "\t2 & true & true & false & false \\\\\n", + "\t3 & true & true & true & true \\\\\n", "\\end{tabular}\n" ], "text/plain": [ @@ -59,9 +59,9 @@ "│ Row │ x1 │ x2 │ x3 │ x4 │\n", "│ │ \u001b[90mBool\u001b[39m │ \u001b[90mBool\u001b[39m │ \u001b[90mBool\u001b[39m │ \u001b[90mBool\u001b[39m │\n", "├─────┼───────┼───────┼───────┼───────┤\n", - "│ 1 │ true │ false │ false │ true │\n", - "│ 2 │ false │ false │ true │ true │\n", - "│ 3 │ true │ true │ true │ false │" + "│ 1 │ false │ false │ false │ true │\n", + "│ 2 │ true │ true │ false │ false │\n", + "│ 3 │ true │ true │ true │ true │" ] }, "execution_count": 2, @@ -88,7 +88,7 @@ { "data": { "text/html": [ - "

3 rows × 4 columns

Ax2x3x4
BoolBoolBoolBool
1truefalsefalsetrue
2falsefalsetruetrue
3truetruetruefalse
" + "

3 rows × 4 columns

Ax2x3x4
BoolBoolBoolBool
1falsefalsefalsetrue
2truetruefalsefalse
3truetruetruetrue
" ], "text/latex": [ "\\begin{tabular}{r|cccc}\n", @@ -96,9 +96,9 @@ "\t\\hline\n", "\t& Bool & Bool & Bool & Bool\\\\\n", "\t\\hline\n", - "\t1 & true & false & false & true \\\\\n", - "\t2 & false & false & true & true \\\\\n", - "\t3 & true & true & true & false \\\\\n", + "\t1 & false & false & false & true \\\\\n", + "\t2 & true & true & false & false \\\\\n", + "\t3 & true & true & true & true \\\\\n", "\\end{tabular}\n" ], "text/plain": [ @@ -106,9 +106,9 @@ "│ Row │ A │ x2 │ x3 │ x4 │\n", "│ │ \u001b[90mBool\u001b[39m │ \u001b[90mBool\u001b[39m │ \u001b[90mBool\u001b[39m │ \u001b[90mBool\u001b[39m │\n", "├─────┼───────┼───────┼───────┼───────┤\n", - "│ 1 │ true │ false │ false │ true │\n", - "│ 2 │ false │ false │ true │ true │\n", - "│ 3 │ true │ true │ true │ false │" + "│ 1 │ false │ false │ false │ true │\n", + "│ 2 │ true │ true │ false │ false │\n", + "│ 3 │ true │ true │ true │ true │" ] }, "execution_count": 3, @@ -137,7 +137,7 @@ { "data": { "text/html": [ - "

3 rows × 4 columns

x1x1x2x2x3x3x4x4
BoolBoolBoolBool
1truefalsefalsetrue
2falsefalsetruetrue
3truetruetruefalse
" + "

3 rows × 4 columns

x1x1x2x2x3x3x4x4
BoolBoolBoolBool
1falsefalsefalsetrue
2truetruefalsefalse
3truetruetruetrue
" ], "text/latex": [ "\\begin{tabular}{r|cccc}\n", @@ -145,9 +145,9 @@ "\t\\hline\n", "\t& Bool & Bool & Bool & Bool\\\\\n", "\t\\hline\n", - "\t1 & true & false & false & true \\\\\n", - "\t2 & false & false & true & true \\\\\n", - "\t3 & true & true & true & false \\\\\n", + "\t1 & false & false & false & true \\\\\n", + "\t2 & true & true & false & false \\\\\n", + "\t3 & true & true & true & true \\\\\n", "\\end{tabular}\n" ], "text/plain": [ @@ -155,9 +155,9 @@ "│ Row │ x1x1 │ x2x2 │ x3x3 │ x4x4 │\n", "│ │ \u001b[90mBool\u001b[39m │ \u001b[90mBool\u001b[39m │ \u001b[90mBool\u001b[39m │ \u001b[90mBool\u001b[39m │\n", "├─────┼───────┼───────┼───────┼───────┤\n", - "│ 1 │ true │ false │ false │ true │\n", - "│ 2 │ false │ false │ true │ true │\n", - "│ 3 │ true │ true │ true │ false │" + "│ 1 │ false │ false │ false │ true │\n", + "│ 2 │ true │ true │ false │ false │\n", + "│ 3 │ true │ true │ true │ true │" ] }, "execution_count": 4, @@ -186,7 +186,7 @@ { "data": { "text/html": [ - "

3 rows × 4 columns

x1x1x2x2thirdx4x4
BoolBoolBoolBool
1truefalsefalsetrue
2falsefalsetruetrue
3truetruetruefalse
" + "

3 rows × 4 columns

x1x1x2x2thirdx4x4
BoolBoolBoolBool
1falsefalsefalsetrue
2truetruefalsefalse
3truetruetruetrue
" ], "text/latex": [ "\\begin{tabular}{r|cccc}\n", @@ -194,9 +194,9 @@ "\t\\hline\n", "\t& Bool & Bool & Bool & Bool\\\\\n", "\t\\hline\n", - "\t1 & true & false & false & true \\\\\n", - "\t2 & false & false & true & true \\\\\n", - "\t3 & true & true & true & false \\\\\n", + "\t1 & false & false & false & true \\\\\n", + "\t2 & true & true & false & false \\\\\n", + "\t3 & true & true & true & true \\\\\n", "\\end{tabular}\n" ], "text/plain": [ @@ -204,9 +204,9 @@ "│ Row │ x1x1 │ x2x2 │ third │ x4x4 │\n", "│ │ \u001b[90mBool\u001b[39m │ \u001b[90mBool\u001b[39m │ \u001b[90mBool\u001b[39m │ \u001b[90mBool\u001b[39m │\n", "├─────┼───────┼───────┼───────┼───────┤\n", - "│ 1 │ true │ false │ false │ true │\n", - "│ 2 │ false │ false │ true │ true │\n", - "│ 3 │ true │ true │ true │ false │" + "│ 1 │ false │ false │ false │ true │\n", + "│ 2 │ true │ true │ false │ false │\n", + "│ 3 │ true │ true │ true │ true │" ] }, "execution_count": 5, @@ -233,7 +233,7 @@ { "data": { "text/html": [ - "

3 rows × 4 columns

abcd
BoolBoolBoolBool
1truefalsefalsetrue
2falsefalsetruetrue
3truetruetruefalse
" + "

3 rows × 4 columns

abcd
BoolBoolBoolBool
1falsefalsefalsetrue
2truetruefalsefalse
3truetruetruetrue
" ], "text/latex": [ "\\begin{tabular}{r|cccc}\n", @@ -241,9 +241,9 @@ "\t\\hline\n", "\t& Bool & Bool & Bool & Bool\\\\\n", "\t\\hline\n", - "\t1 & true & false & false & true \\\\\n", - "\t2 & false & false & true & true \\\\\n", - "\t3 & true & true & true & false \\\\\n", + "\t1 & false & false & false & true \\\\\n", + "\t2 & true & true & false & false \\\\\n", + "\t3 & true & true & true & true \\\\\n", "\\end{tabular}\n" ], "text/plain": [ @@ -251,9 +251,9 @@ "│ Row │ a │ b │ c │ d │\n", "│ │ \u001b[90mBool\u001b[39m │ \u001b[90mBool\u001b[39m │ \u001b[90mBool\u001b[39m │ \u001b[90mBool\u001b[39m │\n", "├─────┼───────┼───────┼───────┼───────┤\n", - "│ 1 │ true │ false │ false │ true │\n", - "│ 2 │ false │ false │ true │ true │\n", - "│ 3 │ true │ true │ true │ false │" + "│ 1 │ false │ false │ false │ true │\n", + "│ 2 │ true │ true │ false │ false │\n", + "│ 3 │ true │ true │ true │ true │" ] }, "execution_count": 6, @@ -285,9 +285,9 @@ "ArgumentError: Duplicate variable names: :a. Pass makeunique=true to make them unique using a suffix automatically.", "", "Stacktrace:", - " [1] #names!#4(::Bool, ::Function, ::DataFrames.Index, ::Array{Symbol,1}) at C:\\Users\\bogum\\.julia\\packages\\DataFrames\\Wvy9E\\src\\other\\index.jl:34", - " [2] #names!#32 at .\\none:0 [inlined]", - " [3] names!(::DataFrame, ::Array{Symbol,1}) at C:\\Users\\bogum\\.julia\\packages\\DataFrames\\Wvy9E\\src\\abstractdataframe\\abstractdataframe.jl:122", + " [1] #names!#4(::Bool, ::Function, ::DataFrames.Index, ::Array{Symbol,1}) at C:\\Users\\bogum\\.julia\\packages\\DataFrames\\GoFnP\\src\\other\\index.jl:34", + " [2] #names!#38 at .\\none:0 [inlined]", + " [3] names!(::DataFrame, ::Array{Symbol,1}) at C:\\Users\\bogum\\.julia\\packages\\DataFrames\\GoFnP\\src\\abstractdataframe\\abstractdataframe.jl:124", " [4] top-level scope at In[7]:1" ] } @@ -311,7 +311,7 @@ { "data": { "text/html": [ - "

3 rows × 4 columns

aa_1a_2a_3
BoolBoolBoolBool
1truefalsefalsetrue
2falsefalsetruetrue
3truetruetruefalse
" + "

3 rows × 4 columns

aa_1a_2a_3
BoolBoolBoolBool
1falsefalsefalsetrue
2truetruefalsefalse
3truetruetruetrue
" ], "text/latex": [ "\\begin{tabular}{r|cccc}\n", @@ -319,9 +319,9 @@ "\t\\hline\n", "\t& Bool & Bool & Bool & Bool\\\\\n", "\t\\hline\n", - "\t1 & true & false & false & true \\\\\n", - "\t2 & false & false & true & true \\\\\n", - "\t3 & true & true & true & false \\\\\n", + "\t1 & false & false & false & true \\\\\n", + "\t2 & true & true & false & false \\\\\n", + "\t3 & true & true & true & true \\\\\n", "\\end{tabular}\n" ], "text/plain": [ @@ -329,9 +329,9 @@ "│ Row │ a │ a_1 │ a_2 │ a_3 │\n", "│ │ \u001b[90mBool\u001b[39m │ \u001b[90mBool\u001b[39m │ \u001b[90mBool\u001b[39m │ \u001b[90mBool\u001b[39m │\n", "├─────┼───────┼───────┼───────┼───────┤\n", - "│ 1 │ true │ false │ false │ true │\n", - "│ 2 │ false │ false │ true │ true │\n", - "│ 3 │ true │ true │ true │ false │" + "│ 1 │ false │ false │ false │ true │\n", + "│ 2 │ true │ true │ false │ false │\n", + "│ 3 │ true │ true │ true │ true │" ] }, "execution_count": 8, @@ -367,7 +367,7 @@ { "data": { "text/html": [ - "

3 rows × 4 columns

a_1a_3a_2a
BoolBoolBoolBool
1falsetruefalsetrue
2falsetruetruefalse
3truefalsetruetrue
" + "

3 rows × 4 columns

a_1a_3a_2a
BoolBoolBoolBool
1falsetruefalsefalse
2truefalsefalsetrue
3truetruetruetrue
" ], "text/latex": [ "\\begin{tabular}{r|cccc}\n", @@ -375,9 +375,9 @@ "\t\\hline\n", "\t& Bool & Bool & Bool & Bool\\\\\n", "\t\\hline\n", - "\t1 & false & true & false & true \\\\\n", - "\t2 & false & true & true & false \\\\\n", - "\t3 & true & false & true & true \\\\\n", + "\t1 & false & true & false & false \\\\\n", + "\t2 & true & false & false & true \\\\\n", + "\t3 & true & true & true & true \\\\\n", "\\end{tabular}\n" ], "text/plain": [ @@ -385,9 +385,9 @@ "│ Row │ a_1 │ a_3 │ a_2 │ a │\n", "│ │ \u001b[90mBool\u001b[39m │ \u001b[90mBool\u001b[39m │ \u001b[90mBool\u001b[39m │ \u001b[90mBool\u001b[39m │\n", "├─────┼───────┼───────┼───────┼───────┤\n", - "│ 1 │ false │ true │ false │ true │\n", - "│ 2 │ false │ true │ true │ false │\n", - "│ 3 │ true │ false │ true │ true │" + "│ 1 │ false │ true │ false │ false │\n", + "│ 2 │ true │ false │ false │ true │\n", + "│ 3 │ true │ true │ true │ true │" ] }, "execution_count": 9, @@ -398,7 +398,7 @@ "source": [ "using Random\n", "Random.seed!(1234)\n", - "x[shuffle(names(x))]" + "x[:, shuffle(names(x))]" ] }, { @@ -416,7 +416,7 @@ { "data": { "text/html": [ - "

3 rows × 4 columns

a_3a_2a_1a
BoolBoolBoolBool
1truefalsefalsetrue
2truetruefalsefalse
3falsetruetruetrue
" + "

3 rows × 4 columns

a_3a_2a_1a
BoolBoolBoolBool
1truefalsefalsefalse
2falsefalsetruetrue
3truetruetruetrue
" ], "text/latex": [ "\\begin{tabular}{r|cccc}\n", @@ -424,9 +424,9 @@ "\t\\hline\n", "\t& Bool & Bool & Bool & Bool\\\\\n", "\t\\hline\n", - "\t1 & true & false & false & true \\\\\n", - "\t2 & true & true & false & false \\\\\n", - "\t3 & false & true & true & true \\\\\n", + "\t1 & true & false & false & false \\\\\n", + "\t2 & false & false & true & true \\\\\n", + "\t3 & true & true & true & true \\\\\n", "\\end{tabular}\n" ], "text/plain": [ @@ -434,9 +434,9 @@ "│ Row │ a_3 │ a_2 │ a_1 │ a │\n", "│ │ \u001b[90mBool\u001b[39m │ \u001b[90mBool\u001b[39m │ \u001b[90mBool\u001b[39m │ \u001b[90mBool\u001b[39m │\n", "├─────┼───────┼───────┼───────┼───────┤\n", - "│ 1 │ true │ false │ false │ true │\n", - "│ 2 │ true │ true │ false │ false │\n", - "│ 3 │ false │ true │ true │ true │" + "│ 1 │ true │ false │ false │ false │\n", + "│ 2 │ false │ false │ true │ true │\n", + "│ 3 │ true │ true │ true │ true │" ] }, "execution_count": 10, @@ -746,7 +746,7 @@ "name": "stdout", "output_type": "stream", "text": [ - " 10.795 μs (138 allocations: 11.11 KiB)\n" + " 14.600 μs (134 allocations: 10.69 KiB)\n" ] }, { @@ -782,7 +782,7 @@ ], "source": [ "using BenchmarkTools\n", - "@btime [$x[1:2] DataFrame(A=[1,2,3]) $x[3:4]]" + "@btime [$x[!, 1:2] DataFrame(A=[1,2,3]) $x[!, 3:4]]" ] }, { @@ -895,7 +895,7 @@ "name": "stdout", "output_type": "stream", "text": [ - " 1.491 μs (29 allocations: 2.50 KiB)\n" + " 2.390 μs (30 allocations: 2.61 KiB)\n" ] }, { @@ -1120,7 +1120,7 @@ } ], "source": [ - "x[[1,2,4,5]]" + "x[:, [1,2,4,5]] # use ! instead of : for non-copying operation" ] }, { @@ -1167,7 +1167,7 @@ } ], "source": [ - "x[[:x1, :x4]]" + "x[:, [:x1, :x4]]" ] }, { @@ -1214,7 +1214,7 @@ } ], "source": [ - "x[[true, false, true, false, true]]" + "x[:, [true, false, true, false, true]]" ] }, { @@ -1261,7 +1261,7 @@ } ], "source": [ - "x[[:x1]]" + "x[:, [:x1]]" ] }, { @@ -1291,7 +1291,7 @@ } ], "source": [ - "x[:x1]" + "x[!, :x1] # use : instead of ! to copy" ] }, { @@ -1344,7 +1344,7 @@ } ], "source": [ - "x[1]" + "x[!, 1]" ] }, { @@ -1371,14 +1371,14 @@ } ], "source": [ - "x[1] === x[[1]]" + "x[!, 1] === x[!, [1]]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "and remove everything from a `DataFrame` with `empty!`." + "you can also use `Regex` and `Not` from InvertedIndies.jl for column selection:" ] }, { @@ -1389,18 +1389,27 @@ { "data": { "text/html": [ - "

0 rows × 0 columns

" + "

3 rows × 2 columns

x1x2
Tuple…Tuple…
1(1, 1)(1, 2)
2(2, 1)(2, 2)
3(3, 1)(3, 2)
" ], "text/latex": [ - "\\begin{tabular}{r|}\n", - "\t& \\\\\n", + "\\begin{tabular}{r|cc}\n", + "\t& x1 & x2\\\\\n", "\t\\hline\n", - "\t& \\\\\n", + "\t& Tuple… & Tuple…\\\\\n", "\t\\hline\n", + "\t1 & (1, 1) & (1, 2) \\\\\n", + "\t2 & (2, 1) & (2, 2) \\\\\n", + "\t3 & (3, 1) & (3, 2) \\\\\n", "\\end{tabular}\n" ], "text/plain": [ - "0×0 DataFrame\n" + "3×2 DataFrame\n", + "│ Row │ x1 │ x2 │\n", + "│ │ \u001b[90mTuple…\u001b[39m │ \u001b[90mTuple…\u001b[39m │\n", + "├─────┼────────┼────────┤\n", + "│ 1 │ (1, 1) │ (1, 2) │\n", + "│ 2 │ (2, 1) │ (2, 2) │\n", + "│ 3 │ (3, 1) │ (3, 2) │" ] }, "execution_count": 32, @@ -1409,7 +1418,47 @@ } ], "source": [ - "empty!(y)" + "x[!, r\"[12]\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "

3 rows × 4 columns

x2x3x4x5
Tuple…Tuple…Tuple…Tuple…
1(1, 2)(1, 3)(1, 4)(1, 5)
2(2, 2)(2, 3)(2, 4)(2, 5)
3(3, 2)(3, 3)(3, 4)(3, 5)
" + ], + "text/latex": [ + "\\begin{tabular}{r|cccc}\n", + "\t& x2 & x3 & x4 & x5\\\\\n", + "\t\\hline\n", + "\t& Tuple… & Tuple… & Tuple… & Tuple…\\\\\n", + "\t\\hline\n", + "\t1 & (1, 2) & (1, 3) & (1, 4) & (1, 5) \\\\\n", + "\t2 & (2, 2) & (2, 3) & (2, 4) & (2, 5) \\\\\n", + "\t3 & (3, 2) & (3, 3) & (3, 4) & (3, 5) \\\\\n", + "\\end{tabular}\n" + ], + "text/plain": [ + "3×4 DataFrame\n", + "│ Row │ x2 │ x3 │ x4 │ x5 │\n", + "│ │ \u001b[90mTuple…\u001b[39m │ \u001b[90mTuple…\u001b[39m │ \u001b[90mTuple…\u001b[39m │ \u001b[90mTuple…\u001b[39m │\n", + "├─────┼────────┼────────┼────────┼────────┤\n", + "│ 1 │ (1, 2) │ (1, 3) │ (1, 4) │ (1, 5) │\n", + "│ 2 │ (2, 2) │ (2, 3) │ (2, 4) │ (2, 5) │\n", + "│ 3 │ (3, 2) │ (3, 3) │ (3, 4) │ (3, 5) │" + ] + }, + "execution_count": 33, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "x[!, Not(1)]" ] }, { @@ -1421,7 +1470,7 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 34, "metadata": {}, "outputs": [ { @@ -1450,7 +1499,7 @@ "│ 3 │ (3, 1) │ (3, 2) │ (3, 3) │ (3, 4) │ (3, 5) │" ] }, - "execution_count": 33, + "execution_count": 34, "metadata": {}, "output_type": "execute_result" } @@ -1461,7 +1510,7 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 35, "metadata": {}, "outputs": [ { @@ -1490,7 +1539,7 @@ "│ 3 │ (3, 1) │ (3, 2) │" ] }, - "execution_count": 34, + "execution_count": 35, "metadata": {}, "output_type": "execute_result" } @@ -1499,6 +1548,46 @@ "df2 = select(df, [1, 2])" ] }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "

3 rows × 3 columns

x3x4x5
Tuple…Tuple…Tuple…
1(1, 3)(1, 4)(1, 5)
2(2, 3)(2, 4)(2, 5)
3(3, 3)(3, 4)(3, 5)
" + ], + "text/latex": [ + "\\begin{tabular}{r|ccc}\n", + "\t& x3 & x4 & x5\\\\\n", + "\t\\hline\n", + "\t& Tuple… & Tuple… & Tuple…\\\\\n", + "\t\\hline\n", + "\t1 & (1, 3) & (1, 4) & (1, 5) \\\\\n", + "\t2 & (2, 3) & (2, 4) & (2, 5) \\\\\n", + "\t3 & (3, 3) & (3, 4) & (3, 5) \\\\\n", + "\\end{tabular}\n" + ], + "text/plain": [ + "3×3 DataFrame\n", + "│ Row │ x3 │ x4 │ x5 │\n", + "│ │ \u001b[90mTuple…\u001b[39m │ \u001b[90mTuple…\u001b[39m │ \u001b[90mTuple…\u001b[39m │\n", + "├─────┼────────┼────────┼────────┤\n", + "│ 1 │ (1, 3) │ (1, 4) │ (1, 5) │\n", + "│ 2 │ (2, 3) │ (2, 4) │ (2, 5) │\n", + "│ 3 │ (3, 3) │ (3, 4) │ (3, 5) │" + ] + }, + "execution_count": 36, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "select(df, Not([1, 2]))" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -1508,7 +1597,7 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": 37, "metadata": {}, "outputs": [ { @@ -1517,13 +1606,13 @@ "false" ] }, - "execution_count": 35, + "execution_count": 37, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "df2[1] === df[1]" + "df2[!, 1] === df[!, 1]" ] }, { @@ -1535,7 +1624,7 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": 38, "metadata": {}, "outputs": [ { @@ -1564,7 +1653,7 @@ "│ 3 │ (3, 1) │ (3, 2) │" ] }, - "execution_count": 36, + "execution_count": 38, "metadata": {}, "output_type": "execute_result" } @@ -1575,7 +1664,7 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": 39, "metadata": {}, "outputs": [ { @@ -1584,13 +1673,13 @@ "true" ] }, - "execution_count": 37, + "execution_count": 39, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "df2[1] === df[1]" + "df2[!, 1] === df[!, 1]" ] }, { @@ -1602,7 +1691,7 @@ }, { "cell_type": "code", - "execution_count": 38, + "execution_count": 40, "metadata": {}, "outputs": [ { @@ -1631,7 +1720,7 @@ "│ 3 │ (3, 1) │ (3, 2) │" ] }, - "execution_count": 38, + "execution_count": 40, "metadata": {}, "output_type": "execute_result" } @@ -1642,7 +1731,7 @@ }, { "cell_type": "code", - "execution_count": 39, + "execution_count": 41, "metadata": {}, "outputs": [ { @@ -1651,7 +1740,7 @@ "true" ] }, - "execution_count": 39, + "execution_count": 41, "metadata": {}, "output_type": "execute_result" } @@ -1664,12 +1753,12 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Here we create a copy of `x` and delete the 3rd column from the copy with `deletecols!`." + "Here we create a copy of `x` and delete the 3rd column from the copy with `select!` and `Not`." ] }, { "cell_type": "code", - "execution_count": 40, + "execution_count": 42, "metadata": {}, "outputs": [ { @@ -1698,26 +1787,26 @@ "│ 3 │ (3, 1) │ (3, 2) │ (3, 4) │ (3, 5) │" ] }, - "execution_count": 40, + "execution_count": 42, "metadata": {}, "output_type": "execute_result" } ], "source": [ "z = copy(x)\n", - "deletecols!(z, 3)" + "select!(z, Not(3))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "alternatively we can achieve the same by using the `deletecols` function" + "alternatively we can achieve the same by using the `select` function" ] }, { "cell_type": "code", - "execution_count": 41, + "execution_count": 43, "metadata": {}, "outputs": [ { @@ -1746,13 +1835,13 @@ "│ 3 │ (3, 1) │ (3, 2) │ (3, 4) │ (3, 5) │" ] }, - "execution_count": 41, + "execution_count": 43, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "deletecols(x, 3)" + "select(x, Not(3))" ] }, { @@ -1764,7 +1853,7 @@ }, { "cell_type": "code", - "execution_count": 42, + "execution_count": 44, "metadata": {}, "outputs": [ { @@ -1793,7 +1882,7 @@ "│ 3 │ (3, 1) │ (3, 2) │ (3, 3) │ (3, 4) │ (3, 5) │" ] }, - "execution_count": 42, + "execution_count": 44, "metadata": {}, "output_type": "execute_result" } @@ -1811,14 +1900,14 @@ }, { "cell_type": "code", - "execution_count": 43, + "execution_count": 45, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - " 1.234 μs (28 allocations: 2.33 KiB)\n" + " 2.280 μs (28 allocations: 2.33 KiB)\n" ] }, { @@ -1847,25 +1936,25 @@ "│ 3 │ (3, 1) │ (3, 3) │ (3, 5) │" ] }, - "execution_count": 43, + "execution_count": 45, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "@btime x[[1,3,5]]" + "@btime x[:, [1,3,5]]" ] }, { "cell_type": "code", - "execution_count": 44, + "execution_count": 46, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - " 99.008 ns (4 allocations: 256 bytes)\n" + " 332.505 ns (4 allocations: 256 bytes)\n" ] }, { @@ -1894,13 +1983,13 @@ "│ 3 │ (3, 1) │ (3, 3) │ (3, 5) │" ] }, - "execution_count": 44, + "execution_count": 46, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "@btime @view x[[1,3,5]]" + "@btime @view x[:, [1,3,5]]" ] }, { @@ -1919,7 +2008,7 @@ }, { "cell_type": "code", - "execution_count": 45, + "execution_count": 47, "metadata": {}, "outputs": [ { @@ -1948,7 +2037,7 @@ "│ 3 │ (3, 1) │ (3, 2) │ (3, 3) │ (3, 4) │ (3, 5) │" ] }, - "execution_count": 45, + "execution_count": 47, "metadata": {}, "output_type": "execute_result" } @@ -1961,12 +2050,12 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "With the following syntax, the existing column is modified without performing any copying." + "With the following syntax, the existing column is modified without performing any copying (this is discouraged as it creates column alias)." ] }, { "cell_type": "code", - "execution_count": 46, + "execution_count": 48, "metadata": {}, "outputs": [ { @@ -1995,16 +2084,46 @@ "│ 3 │ (3, 2) │ (3, 2) │ (3, 3) │ (3, 4) │ (3, 5) │" ] }, - "execution_count": 46, + "execution_count": 48, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "x[:x1] = x[:x2]\n", + "x[!, :x1] = x[!, :x2]\n", "x" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "this syntax is safer" + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "3-element Array{Tuple{Int64,Int64},1}:\n", + " (1, 2)\n", + " (2, 2)\n", + " (3, 2)" + ] + }, + "execution_count": 49, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "x[!, :x1] = x[:, :x2]" + ] + }, { "cell_type": "markdown", "metadata": {}, @@ -2014,7 +2133,7 @@ }, { "cell_type": "code", - "execution_count": 47, + "execution_count": 50, "metadata": {}, "outputs": [ { @@ -2043,13 +2162,13 @@ "│ 3 │ (3, 2) │ (3, 2) │ (3, 3) │ (3, 4) │ (3, 5) │ 3 │" ] }, - "execution_count": 47, + "execution_count": 50, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "x[:A] = [1,2,3]\n", + "x[!, :A] = [1,2,3]\n", "x" ] }, @@ -2057,22 +2176,22 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "A new column name will be added to our `DataFrame` with the following syntax as well (7 is equal to `ncol(x)+1`)." + "A new column name will be added to our `DataFrame` with the following syntax as well:" ] }, { "cell_type": "code", - "execution_count": 48, + "execution_count": 51, "metadata": {}, "outputs": [ { "data": { "text/html": [ - "

3 rows × 7 columns

x1x2x3x4x5Ax7
Tuple…Tuple…Tuple…Tuple…Tuple…Int64Int64
1(1, 2)(1, 2)(1, 3)(1, 4)(1, 5)111
2(2, 2)(2, 2)(2, 3)(2, 4)(2, 5)212
3(3, 2)(3, 2)(3, 3)(3, 4)(3, 5)313
" + "

3 rows × 7 columns

x1x2x3x4x5AB
Tuple…Tuple…Tuple…Tuple…Tuple…Int64Int64
1(1, 2)(1, 2)(1, 3)(1, 4)(1, 5)111
2(2, 2)(2, 2)(2, 3)(2, 4)(2, 5)212
3(3, 2)(3, 2)(3, 3)(3, 4)(3, 5)313
" ], "text/latex": [ "\\begin{tabular}{r|ccccccc}\n", - "\t& x1 & x2 & x3 & x4 & x5 & A & x7\\\\\n", + "\t& x1 & x2 & x3 & x4 & x5 & A & B\\\\\n", "\t\\hline\n", "\t& Tuple… & Tuple… & Tuple… & Tuple… & Tuple… & Int64 & Int64\\\\\n", "\t\\hline\n", @@ -2083,7 +2202,7 @@ ], "text/plain": [ "3×7 DataFrame\n", - "│ Row │ x1 │ x2 │ x3 │ x4 │ x5 │ A │ x7 │\n", + "│ Row │ x1 │ x2 │ x3 │ x4 │ x5 │ A │ B │\n", "│ │ \u001b[90mTuple…\u001b[39m │ \u001b[90mTuple…\u001b[39m │ \u001b[90mTuple…\u001b[39m │ \u001b[90mTuple…\u001b[39m │ \u001b[90mTuple…\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │\n", "├─────┼────────┼────────┼────────┼────────┼────────┼───────┼───────┤\n", "│ 1 │ (1, 2) │ (1, 2) │ (1, 3) │ (1, 4) │ (1, 5) │ 1 │ 11 │\n", @@ -2091,13 +2210,13 @@ "│ 3 │ (3, 2) │ (3, 2) │ (3, 3) │ (3, 4) │ (3, 5) │ 3 │ 13 │" ] }, - "execution_count": 48, + "execution_count": 51, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "x[7] = 11:13\n", + "x.B = 11:13\n", "x" ] }, @@ -2110,7 +2229,7 @@ }, { "cell_type": "code", - "execution_count": 49, + "execution_count": 52, "metadata": {}, "outputs": [ { @@ -2139,7 +2258,7 @@ "│ 3 │ (3, 1) │ (3, 2) │ (3, 3) │ (3, 4) │ (3, 5) │" ] }, - "execution_count": 49, + "execution_count": 52, "metadata": {}, "output_type": "execute_result" } @@ -2157,7 +2276,7 @@ }, { "cell_type": "code", - "execution_count": 50, + "execution_count": 53, "metadata": {}, "outputs": [ { @@ -2166,13 +2285,13 @@ "true" ] }, - "execution_count": 50, + "execution_count": 53, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "haskey(x, :x1)" + "hasproperty(x, :x1)" ] }, { @@ -2184,7 +2303,7 @@ }, { "cell_type": "code", - "execution_count": 51, + "execution_count": 54, "metadata": {}, "outputs": [ { @@ -2193,7 +2312,7 @@ "2" ] }, - "execution_count": 51, + "execution_count": 54, "metadata": {}, "output_type": "execute_result" } @@ -2204,10 +2323,14 @@ } ], "metadata": { + "@webio": { + "lastCommId": null, + "lastKernelId": null + }, "kernelspec": { - "display_name": "Julia 1.0.3", + "display_name": "Julia 1.1.0", "language": "julia", - "name": "julia-1.0" + "name": "julia-1.1" }, "language_info": { "file_extension": ".jl", diff --git a/06_rows.ipynb b/06_rows.ipynb index 63d67aa..ae9029b 100644 --- a/06_rows.ipynb +++ b/06_rows.ipynb @@ -5,7 +5,7 @@ "metadata": {}, "source": [ "# Introduction to DataFrames\n", - "**[Bogumił Kamiński](http://bogumilkaminski.pl/about/), April 27, 2019**" + "**[Bogumił Kamiński](http://bogumilkaminski.pl/about/), July 16, 2019**" ] }, { @@ -14,7 +14,7 @@ "metadata": {}, "outputs": [], "source": [ - "using DataFrames, Random # load packages\n", + "using DataFrames, Random\n", "Random.seed!(1);" ] }, @@ -327,7 +327,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "let us add a column to a data frame by assigning a scalar which will be broadcasted" + "let us add a column to a data frame by assigning a scalar broadcasting" ] }, { @@ -338,7 +338,11 @@ { "data": { "text/plain": [ - "1" + "4-element Array{Int64,1}:\n", + " 1\n", + " 1\n", + " 1\n", + " 1" ] }, "execution_count": 9, @@ -347,7 +351,7 @@ } ], "source": [ - "df.Z = 1" + "df[!, :Z] .= 1" ] }, { @@ -945,7 +949,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - " it is also easy to swap rows" + " it is also easy to swap rows using broadcasted assignment" ] }, { @@ -1006,7 +1010,7 @@ ], "source": [ "sort!(x, :id)\n", - "x[[1,10],:] = x[[10,1],:]\n", + "x[[1,10],:] .= x[[10,1],:]\n", "x" ] }, @@ -1223,7 +1227,7 @@ } ], "source": [ - "y = x[reverse(names(x))]" + "y = x[:, reverse(names(x))]" ] }, { @@ -1299,16 +1303,17 @@ "ArgumentError: column(s) x1 and x2 are missing from argument(s) 2", "", "Stacktrace:", - " [1] #_vcat#68(::Symbol, ::Function, ::Array{DataFrame,1}) at C:\\Users\\bogum\\.julia\\packages\\DataFrames\\Wvy9E\\src\\abstractdataframe\\abstractdataframe.jl:1133", - " [2] #_vcat at .\\none:0 [inlined]", - " [3] #vcat#63(::Symbol, ::Function, ::DataFrame, ::Vararg{DataFrame,N} where N) at C:\\Users\\bogum\\.julia\\packages\\DataFrames\\Wvy9E\\src\\abstractdataframe\\abstractdataframe.jl:1103", - " [4] vcat(::DataFrame, ::DataFrame) at C:\\Users\\bogum\\.julia\\packages\\DataFrames\\Wvy9E\\src\\abstractdataframe\\abstractdataframe.jl:1103", - " [5] top-level scope at In[28]:1" + " [1] #_vcat#75(::Symbol, ::Function, ::Array{DataFrame,1}) at C:\\Users\\bogum\\.julia\\packages\\DataFrames\\GoFnP\\src\\abstractdataframe\\abstractdataframe.jl:1129", + " [2] #reduce#70 at .\\none:0 [inlined]", + " [3] #reduce at .\\none:0 [inlined]", + " [4] #vcat#69 at C:\\Users\\bogum\\.julia\\packages\\DataFrames\\GoFnP\\src\\abstractdataframe\\abstractdataframe.jl:1094 [inlined]", + " [5] vcat(::DataFrame, ::DataFrame) at C:\\Users\\bogum\\.julia\\packages\\DataFrames\\GoFnP\\src\\abstractdataframe\\abstractdataframe.jl:1094", + " [6] top-level scope at In[28]:1" ] } ], "source": [ - "vcat(x, y[1:3])" + "vcat(x, y[:, 1:3])" ] }, { @@ -1361,7 +1366,7 @@ } ], "source": [ - "vcat(x, y[1:3], cols=:intersect)" + "vcat(x, y[:, 1:3], cols=:intersect)" ] }, { @@ -1407,7 +1412,7 @@ } ], "source": [ - "vcat(x, y[1:3], cols=:union)" + "vcat(x, y[:, 1:3], cols=:union)" ] }, { @@ -1453,7 +1458,7 @@ } ], "source": [ - "vcat(x, y[1:3], cols=[:x1, :x5])" + "vcat(x, y[:, 1:3], cols=[:x1, :x5])" ] }, { @@ -1530,7 +1535,7 @@ "", "Stacktrace:", " [1] error(::String) at .\\error.jl:33", - " [2] append!(::DataFrame, ::DataFrame) at C:\\Users\\bogum\\.julia\\packages\\DataFrames\\Wvy9E\\src\\dataframe\\dataframe.jl:1343", + " [2] append!(::DataFrame, ::DataFrame) at C:\\Users\\bogum\\.julia\\packages\\DataFrames\\GoFnP\\src\\dataframe\\dataframe.jl:1097", " [3] top-level scope at In[33]:1" ] } @@ -2133,7 +2138,7 @@ } ], "source": [ - "view(x, 1:2)" + "view(x, :, 1:2)" ] }, { @@ -2356,7 +2361,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "you can also create a new `DataFrame` when deleting rows" + "you can also create a new `DataFrame` when deleting rows using `Not` indexing" ] }, { @@ -2365,19 +2370,42 @@ "metadata": {}, "outputs": [ { - "ename": "UndefVarError", - "evalue": "UndefVarError: deleterows not defined", - "output_type": "error", - "traceback": [ - "UndefVarError: deleterows not defined", - "", - "Stacktrace:", - " [1] top-level scope at In[49]:1" - ] + "data": { + "text/html": [ + "

5 rows × 2 columns

idval
Int64Char
13'c'
24'd'
35'e'
49'i'
510'j'
" + ], + "text/latex": [ + "\\begin{tabular}{r|cc}\n", + "\t& id & val\\\\\n", + "\t\\hline\n", + "\t& Int64 & Char\\\\\n", + "\t\\hline\n", + "\t1 & 3 & 'c' \\\\\n", + "\t2 & 4 & 'd' \\\\\n", + "\t3 & 5 & 'e' \\\\\n", + "\t4 & 9 & 'i' \\\\\n", + "\t5 & 10 & 'j' \\\\\n", + "\\end{tabular}\n" + ], + "text/plain": [ + "5×2 DataFrame\n", + "│ Row │ id │ val │\n", + "│ │ \u001b[90mInt64\u001b[39m │ \u001b[90mChar\u001b[39m │\n", + "├─────┼───────┼──────┤\n", + "│ 1 │ 3 │ 'c' │\n", + "│ 2 │ 4 │ 'd' │\n", + "│ 3 │ 5 │ 'e' │\n", + "│ 4 │ 9 │ 'i' │\n", + "│ 5 │ 10 │ 'j' │" + ] + }, + "execution_count": 49, + "metadata": {}, + "output_type": "execute_result" } ], "source": [ - "deleterows(x, 1:2)" + "x[Not(1:2), :]" ] }, { @@ -2978,10 +3006,14 @@ } ], "metadata": { + "@webio": { + "lastCommId": null, + "lastKernelId": null + }, "kernelspec": { - "display_name": "Julia 1.0.3", + "display_name": "Julia 1.1.0", "language": "julia", - "name": "julia-1.0" + "name": "julia-1.1" }, "language_info": { "file_extension": ".jl", diff --git a/07_factors.ipynb b/07_factors.ipynb index 94af73b..55cab64 100644 --- a/07_factors.ipynb +++ b/07_factors.ipynb @@ -5,7 +5,7 @@ "metadata": {}, "source": [ "# Introduction to DataFrames\n", - "**[Bogumił Kamiński](http://bogumilkaminski.pl/about/), April 27, 2019**" + "**[Bogumił Kamiński](http://bogumilkaminski.pl/about/), July 16, 2019**" ] }, { @@ -142,7 +142,7 @@ { "data": { "text/html": [ - "

10 rows × 2 columns

xn
Categorical…Int64
1[-4.75934, -1.2763)10000
2[-1.2763, -0.836165)10000
3[-0.836165, -0.521294)10000
4[-0.521294, -0.248401)10000
5[-0.248401, 0.00603496)10000
6[0.00603496, 0.255505)10000
7[0.255505, 0.520679)10000
8[0.520679, 0.842969)10000
9[0.842969, 1.28796)10000
10[1.28796, 4.30851]10000
" + "

10 rows × 2 columns

xn
Categorical…Int64
1[-3.97022, -1.28501)10000
2[-1.28501, -0.847175)10000
3[-0.847175, -0.526623)10000
4[-0.526623, -0.256371)10000
5[-0.256371, -0.000949703)10000
6[-0.000949703, 0.253573)10000
7[0.253573, 0.52535)10000
8[0.52535, 0.840664)10000
9[0.840664, 1.27601)10000
10[1.27601, 4.51639]10000
" ], "text/latex": [ "\\begin{tabular}{r|cc}\n", @@ -150,33 +150,33 @@ "\t\\hline\n", "\t& Categorical… & Int64\\\\\n", "\t\\hline\n", - "\t1 & [-4.75934, -1.2763) & 10000 \\\\\n", - "\t2 & [-1.2763, -0.836165) & 10000 \\\\\n", - "\t3 & [-0.836165, -0.521294) & 10000 \\\\\n", - "\t4 & [-0.521294, -0.248401) & 10000 \\\\\n", - "\t5 & [-0.248401, 0.00603496) & 10000 \\\\\n", - "\t6 & [0.00603496, 0.255505) & 10000 \\\\\n", - "\t7 & [0.255505, 0.520679) & 10000 \\\\\n", - "\t8 & [0.520679, 0.842969) & 10000 \\\\\n", - "\t9 & [0.842969, 1.28796) & 10000 \\\\\n", - "\t10 & [1.28796, 4.30851] & 10000 \\\\\n", + "\t1 & [-3.97022, -1.28501) & 10000 \\\\\n", + "\t2 & [-1.28501, -0.847175) & 10000 \\\\\n", + "\t3 & [-0.847175, -0.526623) & 10000 \\\\\n", + "\t4 & [-0.526623, -0.256371) & 10000 \\\\\n", + "\t5 & [-0.256371, -0.000949703) & 10000 \\\\\n", + "\t6 & [-0.000949703, 0.253573) & 10000 \\\\\n", + "\t7 & [0.253573, 0.52535) & 10000 \\\\\n", + "\t8 & [0.52535, 0.840664) & 10000 \\\\\n", + "\t9 & [0.840664, 1.27601) & 10000 \\\\\n", + "\t10 & [1.27601, 4.51639] & 10000 \\\\\n", "\\end{tabular}\n" ], "text/plain": [ "10×2 DataFrame\n", - "│ Row │ x │ n │\n", - "│ │ \u001b[90mCategorical…\u001b[39m │ \u001b[90mInt64\u001b[39m │\n", - "├─────┼─────────────────────────┼───────┤\n", - "│ 1 │ [-4.75934, -1.2763) │ 10000 │\n", - "│ 2 │ [-1.2763, -0.836165) │ 10000 │\n", - "│ 3 │ [-0.836165, -0.521294) │ 10000 │\n", - "│ 4 │ [-0.521294, -0.248401) │ 10000 │\n", - "│ 5 │ [-0.248401, 0.00603496) │ 10000 │\n", - "│ 6 │ [0.00603496, 0.255505) │ 10000 │\n", - "│ 7 │ [0.255505, 0.520679) │ 10000 │\n", - "│ 8 │ [0.520679, 0.842969) │ 10000 │\n", - "│ 9 │ [0.842969, 1.28796) │ 10000 │\n", - "│ 10 │ [1.28796, 4.30851] │ 10000 │" + "│ Row │ x │ n │\n", + "│ │ \u001b[90mCategoricalString{UInt32}\u001b[39m │ \u001b[90mInt64\u001b[39m │\n", + "├─────┼───────────────────────────┼───────┤\n", + "│ 1 │ [-3.97022, -1.28501) │ 10000 │\n", + "│ 2 │ [-1.28501, -0.847175) │ 10000 │\n", + "│ 3 │ [-0.847175, -0.526623) │ 10000 │\n", + "│ 4 │ [-0.526623, -0.256371) │ 10000 │\n", + "│ 5 │ [-0.256371, -0.000949703) │ 10000 │\n", + "│ 6 │ [-0.000949703, 0.253573) │ 10000 │\n", + "│ 7 │ [0.253573, 0.52535) │ 10000 │\n", + "│ 8 │ [0.52535, 0.840664) │ 10000 │\n", + "│ 9 │ [0.840664, 1.27601) │ 10000 │\n", + "│ 10 │ [1.27601, 4.51639] │ 10000 │" ] }, "execution_count": 6, @@ -418,7 +418,7 @@ "ArgumentError: Unordered CategoricalValue objects cannot be tested for order using <. Use isless instead, or call the ordered! function on the parent array to change this", "", "Stacktrace:", - " [1] <(::CategoricalValue{Int64,UInt32}, ::CategoricalValue{Int64,UInt32}) at C:\\Users\\bogum\\.julia\\packages\\CategoricalArrays\\ucKV2\\src\\value.jl:190", + " [1] <(::CategoricalValue{Int64,UInt32}, ::CategoricalValue{Int64,UInt32}) at C:\\Users\\bogum\\.julia\\packages\\CategoricalArrays\\JFETm\\src\\value.jl:190", " [2] top-level scope at In[16]:1" ] } @@ -461,9 +461,9 @@ "", "Stacktrace:", " [1] getindex at .\\dict.jl:478 [inlined]", - " [2] get at C:\\Users\\bogum\\.julia\\packages\\CategoricalArrays\\ucKV2\\src\\pool.jl:88 [inlined]", - " [3] < at C:\\Users\\bogum\\.julia\\packages\\CategoricalArrays\\ucKV2\\src\\value.jl:200 [inlined]", - " [4] <(::CategoricalString{UInt32}, ::String) at C:\\Users\\bogum\\.julia\\packages\\CategoricalArrays\\ucKV2\\src\\value.jl:204", + " [2] get at C:\\Users\\bogum\\.julia\\packages\\CategoricalArrays\\JFETm\\src\\pool.jl:88 [inlined]", + " [3] < at C:\\Users\\bogum\\.julia\\packages\\CategoricalArrays\\JFETm\\src\\value.jl:200 [inlined]", + " [4] <(::CategoricalString{UInt32}, ::String) at C:\\Users\\bogum\\.julia\\packages\\CategoricalArrays\\JFETm\\src\\value.jl:204", " [5] top-level scope at In[18]:1" ] } @@ -549,8 +549,8 @@ "ArgumentError: cannot remove level \"C\" as it is used at position 4 and allow_missing=false.", "", "Stacktrace:", - " [1] #levels!#60(::Bool, ::Function, ::CategoricalArray{Union{Missing, String},1,UInt32,String,CategoricalString{UInt32},Missing}, ::Array{String,1}) at C:\\Users\\bogum\\.julia\\packages\\CategoricalArrays\\ucKV2\\src\\array.jl:594", - " [2] levels!(::CategoricalArray{Union{Missing, String},1,UInt32,String,CategoricalString{UInt32},Missing}, ::Array{String,1}) at C:\\Users\\bogum\\.julia\\packages\\CategoricalArrays\\ucKV2\\src\\array.jl:582", + " [1] #levels!#55(::Bool, ::Function, ::CategoricalArray{Union{Missing, String},1,UInt32,String,CategoricalString{UInt32},Missing}, ::Array{String,1}) at C:\\Users\\bogum\\.julia\\packages\\CategoricalArrays\\JFETm\\src\\array.jl:653", + " [2] levels!(::CategoricalArray{Union{Missing, String},1,UInt32,String,CategoricalString{UInt32},Missing}, ::Array{String,1}) at C:\\Users\\bogum\\.julia\\packages\\CategoricalArrays\\JFETm\\src\\array.jl:641", " [3] top-level scope at In[22]:1" ] } @@ -1130,7 +1130,7 @@ "ArgumentError: Unordered CategoricalValue objects cannot be tested for order using <. Use isless instead, or call the ordered! function on the parent array to change this", "", "Stacktrace:", - " [1] <(::CategoricalValue{Int64,UInt32}, ::CategoricalValue{Int64,UInt32}) at C:\\Users\\bogum\\.julia\\packages\\CategoricalArrays\\ucKV2\\src\\value.jl:190", + " [1] <(::CategoricalValue{Int64,UInt32}, ::CategoricalValue{Int64,UInt32}) at C:\\Users\\bogum\\.julia\\packages\\CategoricalArrays\\JFETm\\src\\value.jl:190", " [2] top-level scope at In[46]:1" ] } @@ -1192,7 +1192,7 @@ "ArgumentError: CategoricalValue objects with different pools cannot be tested for order", "", "Stacktrace:", - " [1] isless(::CategoricalValue{Int64,UInt32}, ::CategoricalValue{Int64,UInt32}) at C:\\Users\\bogum\\.julia\\packages\\CategoricalArrays\\ucKV2\\src\\value.jl:173", + " [1] isless(::CategoricalValue{Int64,UInt32}, ::CategoricalValue{Int64,UInt32}) at C:\\Users\\bogum\\.julia\\packages\\CategoricalArrays\\JFETm\\src\\value.jl:173", " [2] top-level scope at In[49]:2" ] } @@ -1351,13 +1351,13 @@ "\\end{tabular}\n" ], "text/plain": [ - "3×8 DataFrame. Omitted printing of 1 columns\n", - "│ Row │ variable │ mean │ min │ median │ max │ nunique │ nmissing │\n", - "│ │ \u001b[90mSymbol\u001b[39m │ \u001b[90mUnion…\u001b[39m │ \u001b[90mAny\u001b[39m │ \u001b[90mUnion…\u001b[39m │ \u001b[90mAny\u001b[39m │ \u001b[90mUnion…\u001b[39m │ \u001b[90mNothing\u001b[39m │\n", - "├─────┼──────────┼────────┼─────┼────────┼─────┼─────────┼──────────┤\n", - "│ 1 │ x │ 2.0 │ 1 │ 2.0 │ 3 │ │ │\n", - "│ 2 │ y │ │ 'a' │ │ 'c' │ 3 │ │\n", - "│ 3 │ z │ │ a │ │ c │ 3 │ │" + "3×8 DataFrame\n", + "│ Row │ variable │ mean │ min │ median │ max │ nunique │ nmissing │ eltype │\n", + "│ │ \u001b[90mSymbol\u001b[39m │ \u001b[90mUnion…\u001b[39m │ \u001b[90mAny\u001b[39m │ \u001b[90mUnion…\u001b[39m │ \u001b[90mAny\u001b[39m │ \u001b[90mUnion…\u001b[39m │ \u001b[90mNothing\u001b[39m │ \u001b[90mDataType\u001b[39m │\n", + "├─────┼──────────┼────────┼─────┼────────┼─────┼─────────┼──────────┼───────────────────────────┤\n", + "│ 1 │ x │ 2.0 │ 1 │ 2.0 │ 3 │ │ │ Int64 │\n", + "│ 2 │ y │ │ 'a' │ │ 'c' │ 3 │ │ Char │\n", + "│ 3 │ z │ │ a │ │ c │ 3 │ │ CategoricalString{UInt32} │" ] }, "execution_count": 54, @@ -1431,13 +1431,13 @@ "\\end{tabular}\n" ], "text/plain": [ - "3×8 DataFrame. Omitted printing of 1 columns\n", - "│ Row │ variable │ mean │ min │ median │ max │ nunique │ nmissing │\n", - "│ │ \u001b[90mSymbol\u001b[39m │ \u001b[90mNothing\u001b[39m │ \u001b[90mAny\u001b[39m │ \u001b[90mNothing\u001b[39m │ \u001b[90mAny\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mNothing\u001b[39m │\n", - "├─────┼──────────┼─────────┼─────┼─────────┼─────┼─────────┼──────────┤\n", - "│ 1 │ x │ │ 1 │ │ 3 │ 3 │ │\n", - "│ 2 │ y │ │ 'a' │ │ 'c' │ 3 │ │\n", - "│ 3 │ z │ │ a │ │ c │ 3 │ │" + "3×8 DataFrame\n", + "│ Row │ variable │ mean │ min │ median │ max │ nunique │ nmissing │ eltype │\n", + "│ │ \u001b[90mSymbol\u001b[39m │ \u001b[90mNothing\u001b[39m │ \u001b[90mAny\u001b[39m │ \u001b[90mNothing\u001b[39m │ \u001b[90mAny\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mNothing\u001b[39m │ \u001b[90mDataType\u001b[39m │\n", + "├─────┼──────────┼─────────┼─────┼─────────┼─────┼─────────┼──────────┼────────────────────────────────┤\n", + "│ 1 │ x │ │ 1 │ │ 3 │ 3 │ │ CategoricalValue{Int64,UInt32} │\n", + "│ 2 │ y │ │ 'a' │ │ 'c' │ 3 │ │ Char │\n", + "│ 3 │ z │ │ a │ │ c │ 3 │ │ CategoricalString{UInt32} │" ] }, "execution_count": 56, @@ -1451,10 +1451,14 @@ } ], "metadata": { + "@webio": { + "lastCommId": null, + "lastKernelId": null + }, "kernelspec": { - "display_name": "Julia 1.0.3", + "display_name": "Julia 1.1.0", "language": "julia", - "name": "julia-1.0" + "name": "julia-1.1" }, "language_info": { "file_extension": ".jl", diff --git a/08_joins.ipynb b/08_joins.ipynb index b0c0846..87f2612 100644 --- a/08_joins.ipynb +++ b/08_joins.ipynb @@ -5,7 +5,7 @@ "metadata": {}, "source": [ "# Introduction to DataFrames\n", - "**[Bogumił Kamiński](http://bogumilkaminski.pl/about/), April 27, 2019**" + "**[Bogumił Kamiński](http://bogumilkaminski.pl/about/), July 16, 2019**" ] }, { @@ -14,7 +14,7 @@ "metadata": {}, "outputs": [], "source": [ - "using DataFrames # load package" + "using DataFrames" ] }, { @@ -120,47 +120,14 @@ ] }, { - "cell_type": "code", - "execution_count": 4, + "cell_type": "markdown", "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "

5 rows × 2 columns

idname
Int64⍰String
11Alice
22Bob
33Conor
44Dave
5missingZed
" - ], - "text/latex": [ - "\\begin{tabular}{r|cc}\n", - "\t& id & name\\\\\n", - "\t\\hline\n", - "\t& Int64⍰ & String\\\\\n", - "\t\\hline\n", - "\t1 & 1 & Alice \\\\\n", - "\t2 & 2 & Bob \\\\\n", - "\t3 & 3 & Conor \\\\\n", - "\t4 & 4 & Dave \\\\\n", - "\t5 & & Zed \\\\\n", - "\\end{tabular}\n" - ], - "text/plain": [ - "5×2 DataFrame\n", - "│ Row │ id │ name │\n", - "│ │ \u001b[90mInt64⍰\u001b[39m │ \u001b[90mString\u001b[39m │\n", - "├─────┼─────────┼────────┤\n", - "│ 1 │ 1 │ Alice │\n", - "│ 2 │ 2 │ Bob │\n", - "│ 3 │ 3 │ Conor │\n", - "│ 4 │ 4 │ Dave │\n", - "│ 5 │ \u001b[90mmissing\u001b[39m │ Zed │" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], "source": [ - "rename!(x, :ID=>:id) # names of columns on which we want to join must be the same" + "Rules for the `on` keyword argument:\n", + "* a single `Symbol` if joining on one column with the same name, e.g. `on=:id`\n", + "* a pair or a `Tuple` of `Symbol`s if joining on one column with different names, e.g. `on=(:id, :id2)` or `on=:id=>:id2`\n", + "* a vector of `Symbol`s if joining on multiple columns with the same name, e.g. `on=[:id1, :id2]`\n", + "* a vector of pairs or `Tuple`s of `Symbol`s if joining on multiple columns with the same name, e.g. `on=[:a1=>:a2, :b1=>:b2]`\n" ] }, { @@ -172,17 +139,17 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/html": [ - "

3 rows × 3 columns

idnameage
Int64⍰StringInt64
11Alice21
22Bob22
3missingZed99
" + "

3 rows × 3 columns

IDnameage
Int64⍰StringInt64
11Alice21
22Bob22
3missingZed99
" ], "text/latex": [ "\\begin{tabular}{r|ccc}\n", - "\t& id & name & age\\\\\n", + "\t& ID & name & age\\\\\n", "\t\\hline\n", "\t& Int64⍰ & String & Int64\\\\\n", "\t\\hline\n", @@ -193,7 +160,7 @@ ], "text/plain": [ "3×3 DataFrame\n", - "│ Row │ id │ name │ age │\n", + "│ Row │ ID │ name │ age │\n", "│ │ \u001b[90mInt64⍰\u001b[39m │ \u001b[90mString\u001b[39m │ \u001b[90mInt64\u001b[39m │\n", "├─────┼─────────┼────────┼───────┤\n", "│ 1 │ 1 │ Alice │ 21 │\n", @@ -201,28 +168,28 @@ "│ 3 │ \u001b[90mmissing\u001b[39m │ Zed │ 99 │" ] }, - "execution_count": 5, + "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "join(x, y, on=:id) # :inner join by default, missing is joined" + "join(x, y, on=(:ID,:id)) # :inner join by default, missing is joined" ] }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/html": [ - "

5 rows × 3 columns

idnameage
Int64⍰StringInt64⍰
11Alice21
22Bob22
33Conormissing
44Davemissing
5missingZed99
" + "

5 rows × 3 columns

IDnameage
Int64⍰StringInt64⍰
11Alice21
22Bob22
33Conormissing
44Davemissing
5missingZed99
" ], "text/latex": [ "\\begin{tabular}{r|ccc}\n", - "\t& id & name & age\\\\\n", + "\t& ID & name & age\\\\\n", "\t\\hline\n", "\t& Int64⍰ & String & Int64⍰\\\\\n", "\t\\hline\n", @@ -235,7 +202,7 @@ ], "text/plain": [ "5×3 DataFrame\n", - "│ Row │ id │ name │ age │\n", + "│ Row │ ID │ name │ age │\n", "│ │ \u001b[90mInt64⍰\u001b[39m │ \u001b[90mString\u001b[39m │ \u001b[90mInt64⍰\u001b[39m │\n", "├─────┼─────────┼────────┼─────────┤\n", "│ 1 │ 1 │ Alice │ 21 │\n", @@ -245,28 +212,28 @@ "│ 5 │ \u001b[90mmissing\u001b[39m │ Zed │ 99 │" ] }, - "execution_count": 6, + "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "join(x, y, on=:id, kind=:left)" + "join(x, y, on=(:ID,:id), kind=:left)" ] }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/html": [ - "

5 rows × 3 columns

idnameage
Int64⍰String⍰Int64
11Alice21
22Bob22
3missingZed99
45missing23
56missing24
" + "

5 rows × 3 columns

IDnameage
Int64⍰String⍰Int64
11Alice21
22Bob22
3missingZed99
45missing23
56missing24
" ], "text/latex": [ "\\begin{tabular}{r|ccc}\n", - "\t& id & name & age\\\\\n", + "\t& ID & name & age\\\\\n", "\t\\hline\n", "\t& Int64⍰ & String⍰ & Int64\\\\\n", "\t\\hline\n", @@ -279,7 +246,7 @@ ], "text/plain": [ "5×3 DataFrame\n", - "│ Row │ id │ name │ age │\n", + "│ Row │ ID │ name │ age │\n", "│ │ \u001b[90mInt64⍰\u001b[39m │ \u001b[90mString⍰\u001b[39m │ \u001b[90mInt64\u001b[39m │\n", "├─────┼─────────┼─────────┼───────┤\n", "│ 1 │ 1 │ Alice │ 21 │\n", @@ -289,28 +256,28 @@ "│ 5 │ 6 │ \u001b[90mmissing\u001b[39m │ 24 │" ] }, - "execution_count": 7, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "join(x, y, on=:id, kind=:right)" + "join(x, y, on=(:ID,:id), kind=:right)" ] }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/html": [ - "

7 rows × 3 columns

idnameage
Int64⍰String⍰Int64⍰
11Alice21
22Bob22
33Conormissing
44Davemissing
5missingZed99
65missing23
76missing24
" + "

7 rows × 3 columns

IDnameage
Int64⍰String⍰Int64⍰
11Alice21
22Bob22
33Conormissing
44Davemissing
5missingZed99
65missing23
76missing24
" ], "text/latex": [ "\\begin{tabular}{r|ccc}\n", - "\t& id & name & age\\\\\n", + "\t& ID & name & age\\\\\n", "\t\\hline\n", "\t& Int64⍰ & String⍰ & Int64⍰\\\\\n", "\t\\hline\n", @@ -325,7 +292,7 @@ ], "text/plain": [ "7×3 DataFrame\n", - "│ Row │ id │ name │ age │\n", + "│ Row │ ID │ name │ age │\n", "│ │ \u001b[90mInt64⍰\u001b[39m │ \u001b[90mString⍰\u001b[39m │ \u001b[90mInt64⍰\u001b[39m │\n", "├─────┼─────────┼─────────┼─────────┤\n", "│ 1 │ 1 │ Alice │ 21 │\n", @@ -337,28 +304,28 @@ "│ 7 │ 6 │ \u001b[90mmissing\u001b[39m │ 24 │" ] }, - "execution_count": 8, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "join(x, y, on=:id, kind=:outer)" + "join(x, y, on=(:ID,:id), kind=:outer)" ] }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/html": [ - "

3 rows × 2 columns

idname
Int64⍰String
11Alice
22Bob
3missingZed
" + "

3 rows × 2 columns

IDname
Int64⍰String
11Alice
22Bob
3missingZed
" ], "text/latex": [ "\\begin{tabular}{r|cc}\n", - "\t& id & name\\\\\n", + "\t& ID & name\\\\\n", "\t\\hline\n", "\t& Int64⍰ & String\\\\\n", "\t\\hline\n", @@ -369,7 +336,7 @@ ], "text/plain": [ "3×2 DataFrame\n", - "│ Row │ id │ name │\n", + "│ Row │ ID │ name │\n", "│ │ \u001b[90mInt64⍰\u001b[39m │ \u001b[90mString\u001b[39m │\n", "├─────┼─────────┼────────┤\n", "│ 1 │ 1 │ Alice │\n", @@ -377,28 +344,28 @@ "│ 3 │ \u001b[90mmissing\u001b[39m │ Zed │" ] }, - "execution_count": 9, + "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "join(x, y, on=:id, kind=:semi)" + "join(x, y, on=(:ID,:id), kind=:semi)" ] }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/html": [ - "

2 rows × 2 columns

idname
Int64⍰String
13Conor
24Dave
" + "

2 rows × 2 columns

IDname
Int64⍰String
13Conor
24Dave
" ], "text/latex": [ "\\begin{tabular}{r|cc}\n", - "\t& id & name\\\\\n", + "\t& ID & name\\\\\n", "\t\\hline\n", "\t& Int64⍰ & String\\\\\n", "\t\\hline\n", @@ -408,20 +375,20 @@ ], "text/plain": [ "2×2 DataFrame\n", - "│ Row │ id │ name │\n", + "│ Row │ ID │ name │\n", "│ │ \u001b[90mInt64⍰\u001b[39m │ \u001b[90mString\u001b[39m │\n", "├─────┼────────┼────────┤\n", "│ 1 │ 3 │ Conor │\n", "│ 2 │ 4 │ Dave │" ] }, - "execution_count": 10, + "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "join(x, y, on=:id, kind=:anti)" + "join(x, y, on=(:ID,:id), kind=:anti)" ] }, { @@ -433,7 +400,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 10, "metadata": {}, "outputs": [ { @@ -468,7 +435,7 @@ "│ 6 │ 2 │ c │" ] }, - "execution_count": 11, + "execution_count": 10, "metadata": {}, "output_type": "execute_result" } @@ -486,7 +453,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 11, "metadata": {}, "outputs": [ { @@ -521,7 +488,7 @@ "│ 6 │ \u001b[90mmissing\u001b[39m │ 99 │ Zoe │" ] }, - "execution_count": 12, + "execution_count": 11, "metadata": {}, "output_type": "execute_result" } @@ -534,7 +501,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 12, "metadata": {}, "outputs": [ { @@ -569,7 +536,7 @@ "│ 6 │ \u001b[90mmissing\u001b[39m │ 999 │ 100 │" ] }, - "execution_count": 13, + "execution_count": 12, "metadata": {}, "output_type": "execute_result" } @@ -582,7 +549,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 13, "metadata": {}, "outputs": [ { @@ -611,7 +578,7 @@ "│ 3 │ \u001b[90mmissing\u001b[39m │ \u001b[90mmissing\u001b[39m │ Zed │ 99 │" ] }, - "execution_count": 14, + "execution_count": 13, "metadata": {}, "output_type": "execute_result" } @@ -622,7 +589,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 14, "metadata": { "scrolled": true }, @@ -671,18 +638,18 @@ "│ 12 │ 3 │ \u001b[90mmissing\u001b[39m │ \u001b[90mmissing\u001b[39m │ 3 │ 24 │ right_only │" ] }, - "execution_count": 15, + "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "join(x, y, on=[:id1], makeunique=true, kind=:outer, indicator=:source) # with duplicates all combinations are produced" + "join(x, y, on=:id1, makeunique=true, kind=:outer, indicator=:source) # with duplicates all combinations are produced" ] }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 15, "metadata": {}, "outputs": [ { @@ -693,19 +660,20 @@ "ArgumentError: Merge key(s) are not unique in both df1 and df2. First duplicate in df1 at 2. First duplicate in df2 at 2", "", "Stacktrace:", - " [1] #join#235(::Array{Symbol,1}, ::Symbol, ::Bool, ::Nothing, ::Tuple{Bool,Bool}, ::Function, ::DataFrame, ::DataFrame) at C:\\Users\\bogum\\.julia\\packages\\DataFrames\\Wvy9E\\src\\abstractdataframe\\join.jl:330", - " [2] (::getfield(Base, Symbol(\"#kw##join\")))(::NamedTuple{(:on, :makeunique, :validate),Tuple{Array{Symbol,1},Bool,Tuple{Bool,Bool}}}, ::typeof(join), ::DataFrame, ::DataFrame) at .\\none:0", - " [3] top-level scope at In[16]:1" + " [1] #join#251(::Symbol, ::Symbol, ::Bool, ::Nothing, ::Tuple{Bool,Bool}, ::Function, ::DataFrame, ::DataFrame) at C:\\Users\\bogum\\.julia\\packages\\DataFrames\\GoFnP\\src\\abstractdataframe\\join.jl:332", + " [2] (::getfield(Base, Symbol(\"#kw##join\")))(::NamedTuple{(:on, :makeunique, :validate),Tuple{Symbol,Bool,Tuple{Bool,Bool}}}, ::typeof(join), ::DataFrame, ::DataFrame) at .\\none:0", + " [3] top-level scope at In[15]:1" ] } ], "source": [ - "join(x, y, on=[:id1], makeunique=true, validate=(true,true)) # you can force validation of uniqueness of key on which you join" + "# you can force validation of uniqueness of key on which you join\n", + "join(x, y, on=:id1, makeunique=true, validate=(true,true))" ] }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 16, "metadata": {}, "outputs": [ { @@ -736,21 +704,25 @@ "│ 4 │ \u001b[90mmissing\u001b[39m │ 99 │ Zoe │" ] }, - "execution_count": 17, + "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "join(x, y, on=[:id1], kind=:semi) # but not by :semi join (as it would duplicate rows)" + "join(x, y, on=:id1, kind=:semi) # but not by :semi join (as it would duplicate rows)" ] } ], "metadata": { + "@webio": { + "lastCommId": null, + "lastKernelId": null + }, "kernelspec": { - "display_name": "Julia 1.0.3", + "display_name": "Julia 1.1.0", "language": "julia", - "name": "julia-1.0" + "name": "julia-1.1" }, "language_info": { "file_extension": ".jl", diff --git a/09_reshaping.ipynb b/09_reshaping.ipynb index 62166f3..877c5a5 100644 --- a/09_reshaping.ipynb +++ b/09_reshaping.ipynb @@ -5,7 +5,7 @@ "metadata": {}, "source": [ "# Introduction to DataFrames\n", - "**[Bogumił Kamiński](http://bogumilkaminski.pl/about/), April 27, 2019**" + "**[Bogumił Kamiński](http://bogumilkaminski.pl/about/), July 16, 2019**" ] }, { @@ -284,7 +284,7 @@ { "data": { "text/html": [ - "

3 rows × 4 columns

idid2a1a2
Int64CharFloat64Float64
11'a'0.2583350.377114
21'b'0.3639650.372239
31'c'0.1409520.766512
" + "

3 rows × 4 columns

idid2a1a2
Int64CharFloat64Float64
11'a'0.7473310.593142
21'b'0.5162090.0585483
31'c'0.5574460.85459
" ], "text/latex": [ "\\begin{tabular}{r|cccc}\n", @@ -292,19 +292,19 @@ "\t\\hline\n", "\t& Int64 & Char & Float64 & Float64\\\\\n", "\t\\hline\n", - "\t1 & 1 & 'a' & 0.258335 & 0.377114 \\\\\n", - "\t2 & 1 & 'b' & 0.363965 & 0.372239 \\\\\n", - "\t3 & 1 & 'c' & 0.140952 & 0.766512 \\\\\n", + "\t1 & 1 & 'a' & 0.747331 & 0.593142 \\\\\n", + "\t2 & 1 & 'b' & 0.516209 & 0.0585483 \\\\\n", + "\t3 & 1 & 'c' & 0.557446 & 0.85459 \\\\\n", "\\end{tabular}\n" ], "text/plain": [ "3×4 DataFrame\n", - "│ Row │ id │ id2 │ a1 │ a2 │\n", - "│ │ \u001b[90mInt64\u001b[39m │ \u001b[90mChar\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │\n", - "├─────┼───────┼──────┼──────────┼──────────┤\n", - "│ 1 │ 1 │ 'a' │ 0.258335 │ 0.377114 │\n", - "│ 2 │ 1 │ 'b' │ 0.363965 │ 0.372239 │\n", - "│ 3 │ 1 │ 'c' │ 0.140952 │ 0.766512 │" + "│ Row │ id │ id2 │ a1 │ a2 │\n", + "│ │ \u001b[90mInt64\u001b[39m │ \u001b[90mChar\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │\n", + "├─────┼───────┼──────┼──────────┼───────────┤\n", + "│ 1 │ 1 │ 'a' │ 0.747331 │ 0.593142 │\n", + "│ 2 │ 1 │ 'b' │ 0.516209 │ 0.0585483 │\n", + "│ 3 │ 1 │ 'c' │ 0.557446 │ 0.85459 │" ] }, "execution_count": 7, @@ -324,7 +324,7 @@ { "data": { "text/html": [ - "

6 rows × 4 columns

variablevalueidid2
SymbolFloat64Int64Char
1a10.2583351'a'
2a10.3639651'b'
3a10.1409521'c'
4a20.3771141'a'
5a20.3722391'b'
6a20.7665121'c'
" + "

6 rows × 4 columns

variablevalueidid2
SymbolFloat64Int64Char
1a10.7473311'a'
2a10.5162091'b'
3a10.5574461'c'
4a20.5931421'a'
5a20.05854831'b'
6a20.854591'c'
" ], "text/latex": [ "\\begin{tabular}{r|cccc}\n", @@ -332,25 +332,25 @@ "\t\\hline\n", "\t& Symbol & Float64 & Int64 & Char\\\\\n", "\t\\hline\n", - "\t1 & a1 & 0.258335 & 1 & 'a' \\\\\n", - "\t2 & a1 & 0.363965 & 1 & 'b' \\\\\n", - "\t3 & a1 & 0.140952 & 1 & 'c' \\\\\n", - "\t4 & a2 & 0.377114 & 1 & 'a' \\\\\n", - "\t5 & a2 & 0.372239 & 1 & 'b' \\\\\n", - "\t6 & a2 & 0.766512 & 1 & 'c' \\\\\n", + "\t1 & a1 & 0.747331 & 1 & 'a' \\\\\n", + "\t2 & a1 & 0.516209 & 1 & 'b' \\\\\n", + "\t3 & a1 & 0.557446 & 1 & 'c' \\\\\n", + "\t4 & a2 & 0.593142 & 1 & 'a' \\\\\n", + "\t5 & a2 & 0.0585483 & 1 & 'b' \\\\\n", + "\t6 & a2 & 0.85459 & 1 & 'c' \\\\\n", "\\end{tabular}\n" ], "text/plain": [ "6×4 DataFrame\n", - "│ Row │ variable │ value │ id │ id2 │\n", - "│ │ \u001b[90mSymbol\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mChar\u001b[39m │\n", - "├─────┼──────────┼──────────┼───────┼──────┤\n", - "│ 1 │ a1 │ 0.258335 │ 1 │ 'a' │\n", - "│ 2 │ a1 │ 0.363965 │ 1 │ 'b' │\n", - "│ 3 │ a1 │ 0.140952 │ 1 │ 'c' │\n", - "│ 4 │ a2 │ 0.377114 │ 1 │ 'a' │\n", - "│ 5 │ a2 │ 0.372239 │ 1 │ 'b' │\n", - "│ 6 │ a2 │ 0.766512 │ 1 │ 'c' │" + "│ Row │ variable │ value │ id │ id2 │\n", + "│ │ \u001b[90mSymbol\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mChar\u001b[39m │\n", + "├─────┼──────────┼───────────┼───────┼──────┤\n", + "│ 1 │ a1 │ 0.747331 │ 1 │ 'a' │\n", + "│ 2 │ a1 │ 0.516209 │ 1 │ 'b' │\n", + "│ 3 │ a1 │ 0.557446 │ 1 │ 'c' │\n", + "│ 4 │ a2 │ 0.593142 │ 1 │ 'a' │\n", + "│ 5 │ a2 │ 0.0585483 │ 1 │ 'b' │\n", + "│ 6 │ a2 │ 0.85459 │ 1 │ 'c' │" ] }, "execution_count": 8, @@ -370,7 +370,7 @@ { "data": { "text/html": [ - "

6 rows × 2 columns

variablevalue
SymbolFloat64
1x10.864447
2x10.0040455
3x10.396437
4x20.0592978
5x20.994284
6x20.195183
" + "

6 rows × 2 columns

variablevalue
SymbolFloat64
1x10.460945
2x10.0749641
3x10.602067
4x20.503391
5x20.450028
6x20.424777
" ], "text/latex": [ "\\begin{tabular}{r|cc}\n", @@ -378,12 +378,12 @@ "\t\\hline\n", "\t& Symbol & Float64\\\\\n", "\t\\hline\n", - "\t1 & x1 & 0.864447 \\\\\n", - "\t2 & x1 & 0.0040455 \\\\\n", - "\t3 & x1 & 0.396437 \\\\\n", - "\t4 & x2 & 0.0592978 \\\\\n", - "\t5 & x2 & 0.994284 \\\\\n", - "\t6 & x2 & 0.195183 \\\\\n", + "\t1 & x1 & 0.460945 \\\\\n", + "\t2 & x1 & 0.0749641 \\\\\n", + "\t3 & x1 & 0.602067 \\\\\n", + "\t4 & x2 & 0.503391 \\\\\n", + "\t5 & x2 & 0.450028 \\\\\n", + "\t6 & x2 & 0.424777 \\\\\n", "\\end{tabular}\n" ], "text/plain": [ @@ -391,12 +391,12 @@ "│ Row │ variable │ value │\n", "│ │ \u001b[90mSymbol\u001b[39m │ \u001b[90mFloat64\u001b[39m │\n", "├─────┼──────────┼───────────┤\n", - "│ 1 │ x1 │ 0.864447 │\n", - "│ 2 │ x1 │ 0.0040455 │\n", - "│ 3 │ x1 │ 0.396437 │\n", - "│ 4 │ x2 │ 0.0592978 │\n", - "│ 5 │ x2 │ 0.994284 │\n", - "│ 6 │ x2 │ 0.195183 │" + "│ 1 │ x1 │ 0.460945 │\n", + "│ 2 │ x1 │ 0.0749641 │\n", + "│ 3 │ x1 │ 0.602067 │\n", + "│ 4 │ x2 │ 0.503391 │\n", + "│ 5 │ x2 │ 0.450028 │\n", + "│ 6 │ x2 │ 0.424777 │" ] }, "execution_count": 9, @@ -416,7 +416,7 @@ { "data": { "text/html": [ - "

6 rows × 3 columns

variablevaluekey
SymbolFloat64Int64
1x10.8927771
2x10.03426951
3x10.4736331
4x20.8173271
5x20.6936921
6x20.4264531
" + "

6 rows × 3 columns

variablevaluekey
SymbolFloat64Int64
1x10.8196351
2x10.850511
3x10.2680181
4x20.556341
5x20.01204181
6x20.8823481
" ], "text/latex": [ "\\begin{tabular}{r|ccc}\n", @@ -424,12 +424,12 @@ "\t\\hline\n", "\t& Symbol & Float64 & Int64\\\\\n", "\t\\hline\n", - "\t1 & x1 & 0.892777 & 1 \\\\\n", - "\t2 & x1 & 0.0342695 & 1 \\\\\n", - "\t3 & x1 & 0.473633 & 1 \\\\\n", - "\t4 & x2 & 0.817327 & 1 \\\\\n", - "\t5 & x2 & 0.693692 & 1 \\\\\n", - "\t6 & x2 & 0.426453 & 1 \\\\\n", + "\t1 & x1 & 0.819635 & 1 \\\\\n", + "\t2 & x1 & 0.85051 & 1 \\\\\n", + "\t3 & x1 & 0.268018 & 1 \\\\\n", + "\t4 & x2 & 0.55634 & 1 \\\\\n", + "\t5 & x2 & 0.0120418 & 1 \\\\\n", + "\t6 & x2 & 0.882348 & 1 \\\\\n", "\\end{tabular}\n" ], "text/plain": [ @@ -437,12 +437,12 @@ "│ Row │ variable │ value │ key │\n", "│ │ \u001b[90mSymbol\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mInt64\u001b[39m │\n", "├─────┼──────────┼───────────┼───────┤\n", - "│ 1 │ x1 │ 0.892777 │ 1 │\n", - "│ 2 │ x1 │ 0.0342695 │ 1 │\n", - "│ 3 │ x1 │ 0.473633 │ 1 │\n", - "│ 4 │ x2 │ 0.817327 │ 1 │\n", - "│ 5 │ x2 │ 0.693692 │ 1 │\n", - "│ 6 │ x2 │ 0.426453 │ 1 │" + "│ 1 │ x1 │ 0.819635 │ 1 │\n", + "│ 2 │ x1 │ 0.85051 │ 1 │\n", + "│ 3 │ x1 │ 0.268018 │ 1 │\n", + "│ 4 │ x2 │ 0.55634 │ 1 │\n", + "│ 5 │ x2 │ 0.0120418 │ 1 │\n", + "│ 6 │ x2 │ 0.882348 │ 1 │" ] }, "execution_count": 10, @@ -471,7 +471,7 @@ { "data": { "text/html": [ - "

3 rows × 4 columns

idid2a1a2
Int64CharFloat64Float64
11'a'0.5688150.46165
21'b'0.9601330.0587342
31'c'0.5557740.574289
" + "

3 rows × 4 columns

idid2a1a2
Int64CharFloat64Float64
11'a'0.4643040.468282
21'b'0.3704040.442787
31'c'0.2083860.232125
" ], "text/latex": [ "\\begin{tabular}{r|cccc}\n", @@ -479,19 +479,19 @@ "\t\\hline\n", "\t& Int64 & Char & Float64 & Float64\\\\\n", "\t\\hline\n", - "\t1 & 1 & 'a' & 0.568815 & 0.46165 \\\\\n", - "\t2 & 1 & 'b' & 0.960133 & 0.0587342 \\\\\n", - "\t3 & 1 & 'c' & 0.555774 & 0.574289 \\\\\n", + "\t1 & 1 & 'a' & 0.464304 & 0.468282 \\\\\n", + "\t2 & 1 & 'b' & 0.370404 & 0.442787 \\\\\n", + "\t3 & 1 & 'c' & 0.208386 & 0.232125 \\\\\n", "\\end{tabular}\n" ], "text/plain": [ "3×4 DataFrame\n", - "│ Row │ id │ id2 │ a1 │ a2 │\n", - "│ │ \u001b[90mInt64\u001b[39m │ \u001b[90mChar\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │\n", - "├─────┼───────┼──────┼──────────┼───────────┤\n", - "│ 1 │ 1 │ 'a' │ 0.568815 │ 0.46165 │\n", - "│ 2 │ 1 │ 'b' │ 0.960133 │ 0.0587342 │\n", - "│ 3 │ 1 │ 'c' │ 0.555774 │ 0.574289 │" + "│ Row │ id │ id2 │ a1 │ a2 │\n", + "│ │ \u001b[90mInt64\u001b[39m │ \u001b[90mChar\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │\n", + "├─────┼───────┼──────┼──────────┼──────────┤\n", + "│ 1 │ 1 │ 'a' │ 0.464304 │ 0.468282 │\n", + "│ 2 │ 1 │ 'b' │ 0.370404 │ 0.442787 │\n", + "│ 3 │ 1 │ 'c' │ 0.208386 │ 0.232125 │" ] }, "execution_count": 11, @@ -511,7 +511,7 @@ { "data": { "text/html": [ - "

3 rows × 4 columns

idid2a1a2
Int64CharFloat64Float64
11'a'0.5688150.46165
21'b'0.9601330.0587342
31'c'0.5557740.574289
" + "

3 rows × 4 columns

idid2a1a2
Int64CharFloat64Float64
11'a'0.4643040.468282
21'b'0.3704040.442787
31'c'0.2083860.232125
" ], "text/latex": [ "\\begin{tabular}{r|cccc}\n", @@ -519,19 +519,19 @@ "\t\\hline\n", "\t& Int64 & Char & Float64 & Float64\\\\\n", "\t\\hline\n", - "\t1 & 1 & 'a' & 0.568815 & 0.46165 \\\\\n", - "\t2 & 1 & 'b' & 0.960133 & 0.0587342 \\\\\n", - "\t3 & 1 & 'c' & 0.555774 & 0.574289 \\\\\n", + "\t1 & 1 & 'a' & 0.464304 & 0.468282 \\\\\n", + "\t2 & 1 & 'b' & 0.370404 & 0.442787 \\\\\n", + "\t3 & 1 & 'c' & 0.208386 & 0.232125 \\\\\n", "\\end{tabular}\n" ], "text/plain": [ "3×4 DataFrame\n", - "│ Row │ id │ id2 │ a1 │ a2 │\n", - "│ │ \u001b[90mInt64\u001b[39m │ \u001b[90mChar\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │\n", - "├─────┼───────┼──────┼──────────┼───────────┤\n", - "│ 1 │ 1 │ 'a' │ 0.568815 │ 0.46165 │\n", - "│ 2 │ 1 │ 'b' │ 0.960133 │ 0.0587342 │\n", - "│ 3 │ 1 │ 'c' │ 0.555774 │ 0.574289 │" + "│ Row │ id │ id2 │ a1 │ a2 │\n", + "│ │ \u001b[90mInt64\u001b[39m │ \u001b[90mChar\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │\n", + "├─────┼───────┼──────┼──────────┼──────────┤\n", + "│ 1 │ 1 │ 'a' │ 0.464304 │ 0.468282 │\n", + "│ 2 │ 1 │ 'b' │ 0.370404 │ 0.442787 │\n", + "│ 3 │ 1 │ 'c' │ 0.208386 │ 0.232125 │" ] }, "metadata": {}, @@ -540,7 +540,7 @@ { "data": { "text/html": [ - "

6 rows × 4 columns

variablevalueidid2
SymbolFloat64Int64Char
1a10.5688151'a'
2a10.9601331'b'
3a10.5557741'c'
4a20.461651'a'
5a20.05873421'b'
6a20.5742891'c'
" + "

6 rows × 4 columns

variablevalueidid2
SymbolFloat64Int64Char
1a10.4643041'a'
2a10.3704041'b'
3a10.2083861'c'
4a20.4682821'a'
5a20.4427871'b'
6a20.2321251'c'
" ], "text/latex": [ "\\begin{tabular}{r|cccc}\n", @@ -548,25 +548,25 @@ "\t\\hline\n", "\t& Symbol & Float64 & Int64 & Char\\\\\n", "\t\\hline\n", - "\t1 & a1 & 0.568815 & 1 & 'a' \\\\\n", - "\t2 & a1 & 0.960133 & 1 & 'b' \\\\\n", - "\t3 & a1 & 0.555774 & 1 & 'c' \\\\\n", - "\t4 & a2 & 0.46165 & 1 & 'a' \\\\\n", - "\t5 & a2 & 0.0587342 & 1 & 'b' \\\\\n", - "\t6 & a2 & 0.574289 & 1 & 'c' \\\\\n", + "\t1 & a1 & 0.464304 & 1 & 'a' \\\\\n", + "\t2 & a1 & 0.370404 & 1 & 'b' \\\\\n", + "\t3 & a1 & 0.208386 & 1 & 'c' \\\\\n", + "\t4 & a2 & 0.468282 & 1 & 'a' \\\\\n", + "\t5 & a2 & 0.442787 & 1 & 'b' \\\\\n", + "\t6 & a2 & 0.232125 & 1 & 'c' \\\\\n", "\\end{tabular}\n" ], "text/plain": [ "6×4 DataFrame\n", - "│ Row │ variable │ value │ id │ id2 │\n", - "│ │ \u001b[90mSymbol\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mChar\u001b[39m │\n", - "├─────┼──────────┼───────────┼───────┼──────┤\n", - "│ 1 │ a1 │ 0.568815 │ 1 │ 'a' │\n", - "│ 2 │ a1 │ 0.960133 │ 1 │ 'b' │\n", - "│ 3 │ a1 │ 0.555774 │ 1 │ 'c' │\n", - "│ 4 │ a2 │ 0.46165 │ 1 │ 'a' │\n", - "│ 5 │ a2 │ 0.0587342 │ 1 │ 'b' │\n", - "│ 6 │ a2 │ 0.574289 │ 1 │ 'c' │" + "│ Row │ variable │ value │ id │ id2 │\n", + "│ │ \u001b[90mSymbol\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mChar\u001b[39m │\n", + "├─────┼──────────┼──────────┼───────┼──────┤\n", + "│ 1 │ a1 │ 0.464304 │ 1 │ 'a' │\n", + "│ 2 │ a1 │ 0.370404 │ 1 │ 'b' │\n", + "│ 3 │ a1 │ 0.208386 │ 1 │ 'c' │\n", + "│ 4 │ a2 │ 0.468282 │ 1 │ 'a' │\n", + "│ 5 │ a2 │ 0.442787 │ 1 │ 'b' │\n", + "│ 6 │ a2 │ 0.232125 │ 1 │ 'c' │" ] }, "metadata": {}, @@ -587,7 +587,7 @@ { "data": { "text/html": [ - "

3 rows × 3 columns

id2a1a2
CharFloat64⍰Float64⍰
1'a'0.5688150.46165
2'b'0.9601330.0587342
3'c'0.5557740.574289
" + "

3 rows × 3 columns

id2a1a2
CharFloat64⍰Float64⍰
1'a'0.4643040.468282
2'b'0.3704040.442787
3'c'0.2083860.232125
" ], "text/latex": [ "\\begin{tabular}{r|ccc}\n", @@ -595,19 +595,19 @@ "\t\\hline\n", "\t& Char & Float64⍰ & Float64⍰\\\\\n", "\t\\hline\n", - "\t1 & 'a' & 0.568815 & 0.46165 \\\\\n", - "\t2 & 'b' & 0.960133 & 0.0587342 \\\\\n", - "\t3 & 'c' & 0.555774 & 0.574289 \\\\\n", + "\t1 & 'a' & 0.464304 & 0.468282 \\\\\n", + "\t2 & 'b' & 0.370404 & 0.442787 \\\\\n", + "\t3 & 'c' & 0.208386 & 0.232125 \\\\\n", "\\end{tabular}\n" ], "text/plain": [ "3×3 DataFrame\n", - "│ Row │ id2 │ a1 │ a2 │\n", - "│ │ \u001b[90mChar\u001b[39m │ \u001b[90mFloat64⍰\u001b[39m │ \u001b[90mFloat64⍰\u001b[39m │\n", - "├─────┼──────┼──────────┼───────────┤\n", - "│ 1 │ 'a' │ 0.568815 │ 0.46165 │\n", - "│ 2 │ 'b' │ 0.960133 │ 0.0587342 │\n", - "│ 3 │ 'c' │ 0.555774 │ 0.574289 │" + "│ Row │ id2 │ a1 │ a2 │\n", + "│ │ \u001b[90mChar\u001b[39m │ \u001b[90mFloat64⍰\u001b[39m │ \u001b[90mFloat64⍰\u001b[39m │\n", + "├─────┼──────┼──────────┼──────────┤\n", + "│ 1 │ 'a' │ 0.464304 │ 0.468282 │\n", + "│ 2 │ 'b' │ 0.370404 │ 0.442787 │\n", + "│ 3 │ 'c' │ 0.208386 │ 0.232125 │" ] }, "execution_count": 13, @@ -627,7 +627,7 @@ { "data": { "text/html": [ - "

3 rows × 4 columns

idid2a1a2
Int64CharFloat64⍰Float64⍰
11'a'0.5688150.46165
21'b'0.9601330.0587342
31'c'0.5557740.574289
" + "

3 rows × 4 columns

idid2a1a2
Int64CharFloat64⍰Float64⍰
11'a'0.4643040.468282
21'b'0.3704040.442787
31'c'0.2083860.232125
" ], "text/latex": [ "\\begin{tabular}{r|cccc}\n", @@ -635,19 +635,19 @@ "\t\\hline\n", "\t& Int64 & Char & Float64⍰ & Float64⍰\\\\\n", "\t\\hline\n", - "\t1 & 1 & 'a' & 0.568815 & 0.46165 \\\\\n", - "\t2 & 1 & 'b' & 0.960133 & 0.0587342 \\\\\n", - "\t3 & 1 & 'c' & 0.555774 & 0.574289 \\\\\n", + "\t1 & 1 & 'a' & 0.464304 & 0.468282 \\\\\n", + "\t2 & 1 & 'b' & 0.370404 & 0.442787 \\\\\n", + "\t3 & 1 & 'c' & 0.208386 & 0.232125 \\\\\n", "\\end{tabular}\n" ], "text/plain": [ "3×4 DataFrame\n", - "│ Row │ id │ id2 │ a1 │ a2 │\n", - "│ │ \u001b[90mInt64\u001b[39m │ \u001b[90mChar\u001b[39m │ \u001b[90mFloat64⍰\u001b[39m │ \u001b[90mFloat64⍰\u001b[39m │\n", - "├─────┼───────┼──────┼──────────┼───────────┤\n", - "│ 1 │ 1 │ 'a' │ 0.568815 │ 0.46165 │\n", - "│ 2 │ 1 │ 'b' │ 0.960133 │ 0.0587342 │\n", - "│ 3 │ 1 │ 'c' │ 0.555774 │ 0.574289 │" + "│ Row │ id │ id2 │ a1 │ a2 │\n", + "│ │ \u001b[90mInt64\u001b[39m │ \u001b[90mChar\u001b[39m │ \u001b[90mFloat64⍰\u001b[39m │ \u001b[90mFloat64⍰\u001b[39m │\n", + "├─────┼───────┼──────┼──────────┼──────────┤\n", + "│ 1 │ 1 │ 'a' │ 0.464304 │ 0.468282 │\n", + "│ 2 │ 1 │ 'b' │ 0.370404 │ 0.442787 │\n", + "│ 3 │ 1 │ 'c' │ 0.208386 │ 0.232125 │" ] }, "execution_count": 14, @@ -667,7 +667,7 @@ { "data": { "text/html": [ - "

3 rows × 4 columns

idid2a1a2
Int64CharFloat64⍰Float64⍰
11'a'0.5688150.46165
21'b'0.9601330.0587342
31'c'0.5557740.574289
" + "

3 rows × 4 columns

idid2a1a2
Int64CharFloat64⍰Float64⍰
11'a'0.4643040.468282
21'b'0.3704040.442787
31'c'0.2083860.232125
" ], "text/latex": [ "\\begin{tabular}{r|cccc}\n", @@ -675,19 +675,19 @@ "\t\\hline\n", "\t& Int64 & Char & Float64⍰ & Float64⍰\\\\\n", "\t\\hline\n", - "\t1 & 1 & 'a' & 0.568815 & 0.46165 \\\\\n", - "\t2 & 1 & 'b' & 0.960133 & 0.0587342 \\\\\n", - "\t3 & 1 & 'c' & 0.555774 & 0.574289 \\\\\n", + "\t1 & 1 & 'a' & 0.464304 & 0.468282 \\\\\n", + "\t2 & 1 & 'b' & 0.370404 & 0.442787 \\\\\n", + "\t3 & 1 & 'c' & 0.208386 & 0.232125 \\\\\n", "\\end{tabular}\n" ], "text/plain": [ "3×4 DataFrame\n", - "│ Row │ id │ id2 │ a1 │ a2 │\n", - "│ │ \u001b[90mInt64\u001b[39m │ \u001b[90mChar\u001b[39m │ \u001b[90mFloat64⍰\u001b[39m │ \u001b[90mFloat64⍰\u001b[39m │\n", - "├─────┼───────┼──────┼──────────┼───────────┤\n", - "│ 1 │ 1 │ 'a' │ 0.568815 │ 0.46165 │\n", - "│ 2 │ 1 │ 'b' │ 0.960133 │ 0.0587342 │\n", - "│ 3 │ 1 │ 'c' │ 0.555774 │ 0.574289 │" + "│ Row │ id │ id2 │ a1 │ a2 │\n", + "│ │ \u001b[90mInt64\u001b[39m │ \u001b[90mChar\u001b[39m │ \u001b[90mFloat64⍰\u001b[39m │ \u001b[90mFloat64⍰\u001b[39m │\n", + "├─────┼───────┼──────┼──────────┼──────────┤\n", + "│ 1 │ 1 │ 'a' │ 0.464304 │ 0.468282 │\n", + "│ 2 │ 1 │ 'b' │ 0.370404 │ 0.442787 │\n", + "│ 3 │ 1 │ 'c' │ 0.208386 │ 0.232125 │" ] }, "execution_count": 15, @@ -708,7 +708,7 @@ { "data": { "text/html": [ - "

6 rows × 2 columns

variablevalue
SymbolFloat64
1x10.14569
2x10.0909384
3x10.367413
4x20.734355
5x20.755325
6x20.63808
" + "

6 rows × 2 columns

variablevalue
SymbolFloat64
1x10.449275
2x10.145481
3x10.952804
4x20.558855
5x20.815565
6x20.343187
" ], "text/latex": [ "\\begin{tabular}{r|cc}\n", @@ -716,25 +716,25 @@ "\t\\hline\n", "\t& Symbol & Float64\\\\\n", "\t\\hline\n", - "\t1 & x1 & 0.14569 \\\\\n", - "\t2 & x1 & 0.0909384 \\\\\n", - "\t3 & x1 & 0.367413 \\\\\n", - "\t4 & x2 & 0.734355 \\\\\n", - "\t5 & x2 & 0.755325 \\\\\n", - "\t6 & x2 & 0.63808 \\\\\n", + "\t1 & x1 & 0.449275 \\\\\n", + "\t2 & x1 & 0.145481 \\\\\n", + "\t3 & x1 & 0.952804 \\\\\n", + "\t4 & x2 & 0.558855 \\\\\n", + "\t5 & x2 & 0.815565 \\\\\n", + "\t6 & x2 & 0.343187 \\\\\n", "\\end{tabular}\n" ], "text/plain": [ "6×2 DataFrame\n", - "│ Row │ variable │ value │\n", - "│ │ \u001b[90mSymbol\u001b[39m │ \u001b[90mFloat64\u001b[39m │\n", - "├─────┼──────────┼───────────┤\n", - "│ 1 │ x1 │ 0.14569 │\n", - "│ 2 │ x1 │ 0.0909384 │\n", - "│ 3 │ x1 │ 0.367413 │\n", - "│ 4 │ x2 │ 0.734355 │\n", - "│ 5 │ x2 │ 0.755325 │\n", - "│ 6 │ x2 │ 0.63808 │" + "│ Row │ variable │ value │\n", + "│ │ \u001b[90mSymbol\u001b[39m │ \u001b[90mFloat64\u001b[39m │\n", + "├─────┼──────────┼──────────┤\n", + "│ 1 │ x1 │ 0.449275 │\n", + "│ 2 │ x1 │ 0.145481 │\n", + "│ 3 │ x1 │ 0.952804 │\n", + "│ 4 │ x2 │ 0.558855 │\n", + "│ 5 │ x2 │ 0.815565 │\n", + "│ 6 │ x2 │ 0.343187 │" ] }, "execution_count": 16, @@ -759,9 +759,9 @@ "ArgumentError: No key column found", "", "Stacktrace:", - " [1] unstack(::DataFrame, ::Array{Symbol,1}, ::Int64, ::Int64) at C:\\Users\\bogum\\.julia\\packages\\DataFrames\\Wvy9E\\src\\abstractdataframe\\reshape.jl:279", - " [2] unstack(::DataFrame, ::Int64, ::Int64) at C:\\Users\\bogum\\.julia\\packages\\DataFrames\\Wvy9E\\src\\abstractdataframe\\reshape.jl:269", - " [3] unstack(::DataFrame, ::Symbol, ::Symbol) at C:\\Users\\bogum\\.julia\\packages\\DataFrames\\Wvy9E\\src\\abstractdataframe\\reshape.jl:265", + " [1] unstack(::DataFrame, ::Array{Symbol,1}, ::Int64, ::Int64) at C:\\Users\\bogum\\.julia\\packages\\DataFrames\\GoFnP\\src\\abstractdataframe\\reshape.jl:281", + " [2] unstack(::DataFrame, ::Int64, ::Int64) at C:\\Users\\bogum\\.julia\\packages\\DataFrames\\GoFnP\\src\\abstractdataframe\\reshape.jl:268", + " [3] unstack(::DataFrame, ::Symbol, ::Symbol) at C:\\Users\\bogum\\.julia\\packages\\DataFrames\\GoFnP\\src\\abstractdataframe\\reshape.jl:264", " [4] top-level scope at In[17]:1" ] } @@ -772,10 +772,14 @@ } ], "metadata": { + "@webio": { + "lastCommId": null, + "lastKernelId": null + }, "kernelspec": { - "display_name": "Julia 1.0.3", + "display_name": "Julia 1.1.0", "language": "julia", - "name": "julia-1.0" + "name": "julia-1.1" }, "language_info": { "file_extension": ".jl", diff --git a/10_transforms.ipynb b/10_transforms.ipynb index 6d4940b..339c331 100644 --- a/10_transforms.ipynb +++ b/10_transforms.ipynb @@ -5,7 +5,7 @@ "metadata": {}, "source": [ "# Introduction to DataFrames\n", - "**[Bogumił Kamiński](http://bogumilkaminski.pl/about/), April 27, 2019**" + "**[Bogumił Kamiński](http://bogumilkaminski.pl/about/), July 16, 2019**" ] }, { @@ -14,7 +14,7 @@ "metadata": {}, "outputs": [], "source": [ - "using DataFrames # load package" + "using DataFrames" ] }, { @@ -32,7 +32,7 @@ { "data": { "text/html": [ - "

8 rows × 3 columns

idid2v
Int64Int64Float64
1110.669188
2220.109742
3310.565507
4420.371262
5110.769019
6220.525894
7310.839502
8420.282013
" + "

8 rows × 3 columns

idid2v
Int64Int64Float64
1110.10478
2220.12417
3310.589577
4420.418537
5110.0138044
6220.124662
7310.625023
8420.80303
" ], "text/latex": [ "\\begin{tabular}{r|ccc}\n", @@ -40,29 +40,29 @@ "\t\\hline\n", "\t& Int64 & Int64 & Float64\\\\\n", "\t\\hline\n", - "\t1 & 1 & 1 & 0.669188 \\\\\n", - "\t2 & 2 & 2 & 0.109742 \\\\\n", - "\t3 & 3 & 1 & 0.565507 \\\\\n", - "\t4 & 4 & 2 & 0.371262 \\\\\n", - "\t5 & 1 & 1 & 0.769019 \\\\\n", - "\t6 & 2 & 2 & 0.525894 \\\\\n", - "\t7 & 3 & 1 & 0.839502 \\\\\n", - "\t8 & 4 & 2 & 0.282013 \\\\\n", + "\t1 & 1 & 1 & 0.10478 \\\\\n", + "\t2 & 2 & 2 & 0.12417 \\\\\n", + "\t3 & 3 & 1 & 0.589577 \\\\\n", + "\t4 & 4 & 2 & 0.418537 \\\\\n", + "\t5 & 1 & 1 & 0.0138044 \\\\\n", + "\t6 & 2 & 2 & 0.124662 \\\\\n", + "\t7 & 3 & 1 & 0.625023 \\\\\n", + "\t8 & 4 & 2 & 0.80303 \\\\\n", "\\end{tabular}\n" ], "text/plain": [ "8×3 DataFrame\n", - "│ Row │ id │ id2 │ v │\n", - "│ │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mFloat64\u001b[39m │\n", - "├─────┼───────┼───────┼──────────┤\n", - "│ 1 │ 1 │ 1 │ 0.669188 │\n", - "│ 2 │ 2 │ 2 │ 0.109742 │\n", - "│ 3 │ 3 │ 1 │ 0.565507 │\n", - "│ 4 │ 4 │ 2 │ 0.371262 │\n", - "│ 5 │ 1 │ 1 │ 0.769019 │\n", - "│ 6 │ 2 │ 2 │ 0.525894 │\n", - "│ 7 │ 3 │ 1 │ 0.839502 │\n", - "│ 8 │ 4 │ 2 │ 0.282013 │" + "│ Row │ id │ id2 │ v │\n", + "│ │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mFloat64\u001b[39m │\n", + "├─────┼───────┼───────┼───────────┤\n", + "│ 1 │ 1 │ 1 │ 0.10478 │\n", + "│ 2 │ 2 │ 2 │ 0.12417 │\n", + "│ 3 │ 3 │ 1 │ 0.589577 │\n", + "│ 4 │ 4 │ 2 │ 0.418537 │\n", + "│ 5 │ 1 │ 1 │ 0.0138044 │\n", + "│ 6 │ 2 │ 2 │ 0.124662 │\n", + "│ 7 │ 3 │ 1 │ 0.625023 │\n", + "│ 8 │ 4 │ 2 │ 0.80303 │" ] }, "execution_count": 2, @@ -84,7 +84,7 @@ { "data": { "text/html": [ - "

GroupedDataFrame with 4 groups based on key: id

First Group (2 rows): id = 1

idid2v
Int64Int64Float64
1110.669188
2110.769019

Last Group (2 rows): id = 4

idid2v
Int64Int64Float64
1420.371262
2420.282013
" + "

GroupedDataFrame with 4 groups based on key: id

First Group (2 rows): id = 1

idid2v
Int64Int64Float64
1110.10478
2110.0138044

Last Group (2 rows): id = 4

idid2v
Int64Int64Float64
1420.418537
2420.80303
" ], "text/latex": [ "GroupedDataFrame with 4 groups based on key: id\n", @@ -96,8 +96,8 @@ "\t\\hline\n", "\t& Int64 & Int64 & Float64\\\\\n", "\t\\hline\n", - "\t1 & 1 & 1 & 0.669188 \\\\\n", - "\t2 & 1 & 1 & 0.769019 \\\\\n", + "\t1 & 1 & 1 & 0.10478 \\\\\n", + "\t2 & 1 & 1 & 0.0138044 \\\\\n", "\\end{tabular}\n", "\n", "$\\dots$\n", @@ -109,25 +109,25 @@ "\t\\hline\n", "\t& Int64 & Int64 & Float64\\\\\n", "\t\\hline\n", - "\t1 & 4 & 2 & 0.371262 \\\\\n", - "\t2 & 4 & 2 & 0.282013 \\\\\n", + "\t1 & 4 & 2 & 0.418537 \\\\\n", + "\t2 & 4 & 2 & 0.80303 \\\\\n", "\\end{tabular}\n" ], "text/plain": [ "GroupedDataFrame with 4 groups based on key: id\n", "First Group (2 rows): id = 1\n", - "│ Row │ id │ id2 │ v │\n", - "│ │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mFloat64\u001b[39m │\n", - "├─────┼───────┼───────┼──────────┤\n", - "│ 1 │ 1 │ 1 │ 0.669188 │\n", - "│ 2 │ 1 │ 1 │ 0.769019 │\n", + "│ Row │ id │ id2 │ v │\n", + "│ │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mFloat64\u001b[39m │\n", + "├─────┼───────┼───────┼───────────┤\n", + "│ 1 │ 1 │ 1 │ 0.10478 │\n", + "│ 2 │ 1 │ 1 │ 0.0138044 │\n", "⋮\n", "Last Group (2 rows): id = 4\n", "│ Row │ id │ id2 │ v │\n", "│ │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mFloat64\u001b[39m │\n", "├─────┼───────┼───────┼──────────┤\n", - "│ 1 │ 4 │ 2 │ 0.371262 │\n", - "│ 2 │ 4 │ 2 │ 0.282013 │" + "│ 1 │ 4 │ 2 │ 0.418537 │\n", + "│ 2 │ 4 │ 2 │ 0.80303 │" ] }, "execution_count": 3, @@ -147,7 +147,7 @@ { "data": { "text/html": [ - "

GroupedDataFrame with 4 groups based on keys: id, id2

First Group (2 rows): id = 1, id2 = 1

idid2v
Int64Int64Float64
1110.669188
2110.769019

Last Group (2 rows): id = 4, id2 = 2

idid2v
Int64Int64Float64
1420.371262
2420.282013
" + "

GroupedDataFrame with 4 groups based on keys: id, id2

First Group (2 rows): id = 1, id2 = 1

idid2v
Int64Int64Float64
1110.10478
2110.0138044

Last Group (2 rows): id = 4, id2 = 2

idid2v
Int64Int64Float64
1420.418537
2420.80303
" ], "text/latex": [ "GroupedDataFrame with 4 groups based on keys: id, id2\n", @@ -159,8 +159,8 @@ "\t\\hline\n", "\t& Int64 & Int64 & Float64\\\\\n", "\t\\hline\n", - "\t1 & 1 & 1 & 0.669188 \\\\\n", - "\t2 & 1 & 1 & 0.769019 \\\\\n", + "\t1 & 1 & 1 & 0.10478 \\\\\n", + "\t2 & 1 & 1 & 0.0138044 \\\\\n", "\\end{tabular}\n", "\n", "$\\dots$\n", @@ -172,25 +172,25 @@ "\t\\hline\n", "\t& Int64 & Int64 & Float64\\\\\n", "\t\\hline\n", - "\t1 & 4 & 2 & 0.371262 \\\\\n", - "\t2 & 4 & 2 & 0.282013 \\\\\n", + "\t1 & 4 & 2 & 0.418537 \\\\\n", + "\t2 & 4 & 2 & 0.80303 \\\\\n", "\\end{tabular}\n" ], "text/plain": [ "GroupedDataFrame with 4 groups based on keys: id, id2\n", "First Group (2 rows): id = 1, id2 = 1\n", - "│ Row │ id │ id2 │ v │\n", - "│ │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mFloat64\u001b[39m │\n", - "├─────┼───────┼───────┼──────────┤\n", - "│ 1 │ 1 │ 1 │ 0.669188 │\n", - "│ 2 │ 1 │ 1 │ 0.769019 │\n", + "│ Row │ id │ id2 │ v │\n", + "│ │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mFloat64\u001b[39m │\n", + "├─────┼───────┼───────┼───────────┤\n", + "│ 1 │ 1 │ 1 │ 0.10478 │\n", + "│ 2 │ 1 │ 1 │ 0.0138044 │\n", "⋮\n", "Last Group (2 rows): id = 4, id2 = 2\n", "│ Row │ id │ id2 │ v │\n", "│ │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mFloat64\u001b[39m │\n", "├─────┼───────┼───────┼──────────┤\n", - "│ 1 │ 4 │ 2 │ 0.371262 │\n", - "│ 2 │ 4 │ 2 │ 0.282013 │" + "│ 1 │ 4 │ 2 │ 0.418537 │\n", + "│ 2 │ 4 │ 2 │ 0.80303 │" ] }, "execution_count": 4, @@ -210,7 +210,7 @@ { "data": { "text/html": [ - "

8 rows × 3 columns

idid2v
Int64Int64Float64
1110.669188
2220.109742
3310.565507
4420.371262
5110.769019
6220.525894
7310.839502
8420.282013
" + "

8 rows × 3 columns

idid2v
Int64Int64Float64
1110.10478
2220.12417
3310.589577
4420.418537
5110.0138044
6220.124662
7310.625023
8420.80303
" ], "text/latex": [ "\\begin{tabular}{r|ccc}\n", @@ -218,29 +218,29 @@ "\t\\hline\n", "\t& Int64 & Int64 & Float64\\\\\n", "\t\\hline\n", - "\t1 & 1 & 1 & 0.669188 \\\\\n", - "\t2 & 2 & 2 & 0.109742 \\\\\n", - "\t3 & 3 & 1 & 0.565507 \\\\\n", - "\t4 & 4 & 2 & 0.371262 \\\\\n", - "\t5 & 1 & 1 & 0.769019 \\\\\n", - "\t6 & 2 & 2 & 0.525894 \\\\\n", - "\t7 & 3 & 1 & 0.839502 \\\\\n", - "\t8 & 4 & 2 & 0.282013 \\\\\n", + "\t1 & 1 & 1 & 0.10478 \\\\\n", + "\t2 & 2 & 2 & 0.12417 \\\\\n", + "\t3 & 3 & 1 & 0.589577 \\\\\n", + "\t4 & 4 & 2 & 0.418537 \\\\\n", + "\t5 & 1 & 1 & 0.0138044 \\\\\n", + "\t6 & 2 & 2 & 0.124662 \\\\\n", + "\t7 & 3 & 1 & 0.625023 \\\\\n", + "\t8 & 4 & 2 & 0.80303 \\\\\n", "\\end{tabular}\n" ], "text/plain": [ "8×3 DataFrame\n", - "│ Row │ id │ id2 │ v │\n", - "│ │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mFloat64\u001b[39m │\n", - "├─────┼───────┼───────┼──────────┤\n", - "│ 1 │ 1 │ 1 │ 0.669188 │\n", - "│ 2 │ 2 │ 2 │ 0.109742 │\n", - "│ 3 │ 3 │ 1 │ 0.565507 │\n", - "│ 4 │ 4 │ 2 │ 0.371262 │\n", - "│ 5 │ 1 │ 1 │ 0.769019 │\n", - "│ 6 │ 2 │ 2 │ 0.525894 │\n", - "│ 7 │ 3 │ 1 │ 0.839502 │\n", - "│ 8 │ 4 │ 2 │ 0.282013 │" + "│ Row │ id │ id2 │ v │\n", + "│ │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mFloat64\u001b[39m │\n", + "├─────┼───────┼───────┼───────────┤\n", + "│ 1 │ 1 │ 1 │ 0.10478 │\n", + "│ 2 │ 2 │ 2 │ 0.12417 │\n", + "│ 3 │ 3 │ 1 │ 0.589577 │\n", + "│ 4 │ 4 │ 2 │ 0.418537 │\n", + "│ 5 │ 1 │ 1 │ 0.0138044 │\n", + "│ 6 │ 2 │ 2 │ 0.124662 │\n", + "│ 7 │ 3 │ 1 │ 0.625023 │\n", + "│ 8 │ 4 │ 2 │ 0.80303 │" ] }, "execution_count": 5, @@ -260,7 +260,7 @@ { "data": { "text/html": [ - "

8 rows × 3 columns

idid2v
Int64Int64Float64
1110.669188
2110.769019
3220.109742
4220.525894
5310.565507
6310.839502
7420.371262
8420.282013
" + "

8 rows × 3 columns

idid2v
Int64Int64Float64
1110.10478
2110.0138044
3220.12417
4220.124662
5310.589577
6310.625023
7420.418537
8420.80303
" ], "text/latex": [ "\\begin{tabular}{r|ccc}\n", @@ -268,29 +268,29 @@ "\t\\hline\n", "\t& Int64 & Int64 & Float64\\\\\n", "\t\\hline\n", - "\t1 & 1 & 1 & 0.669188 \\\\\n", - "\t2 & 1 & 1 & 0.769019 \\\\\n", - "\t3 & 2 & 2 & 0.109742 \\\\\n", - "\t4 & 2 & 2 & 0.525894 \\\\\n", - "\t5 & 3 & 1 & 0.565507 \\\\\n", - "\t6 & 3 & 1 & 0.839502 \\\\\n", - "\t7 & 4 & 2 & 0.371262 \\\\\n", - "\t8 & 4 & 2 & 0.282013 \\\\\n", + "\t1 & 1 & 1 & 0.10478 \\\\\n", + "\t2 & 1 & 1 & 0.0138044 \\\\\n", + "\t3 & 2 & 2 & 0.12417 \\\\\n", + "\t4 & 2 & 2 & 0.124662 \\\\\n", + "\t5 & 3 & 1 & 0.589577 \\\\\n", + "\t6 & 3 & 1 & 0.625023 \\\\\n", + "\t7 & 4 & 2 & 0.418537 \\\\\n", + "\t8 & 4 & 2 & 0.80303 \\\\\n", "\\end{tabular}\n" ], "text/plain": [ "8×3 DataFrame\n", - "│ Row │ id │ id2 │ v │\n", - "│ │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mFloat64\u001b[39m │\n", - "├─────┼───────┼───────┼──────────┤\n", - "│ 1 │ 1 │ 1 │ 0.669188 │\n", - "│ 2 │ 1 │ 1 │ 0.769019 │\n", - "│ 3 │ 2 │ 2 │ 0.109742 │\n", - "│ 4 │ 2 │ 2 │ 0.525894 │\n", - "│ 5 │ 3 │ 1 │ 0.565507 │\n", - "│ 6 │ 3 │ 1 │ 0.839502 │\n", - "│ 7 │ 4 │ 2 │ 0.371262 │\n", - "│ 8 │ 4 │ 2 │ 0.282013 │" + "│ Row │ id │ id2 │ v │\n", + "│ │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mFloat64\u001b[39m │\n", + "├─────┼───────┼───────┼───────────┤\n", + "│ 1 │ 1 │ 1 │ 0.10478 │\n", + "│ 2 │ 1 │ 1 │ 0.0138044 │\n", + "│ 3 │ 2 │ 2 │ 0.12417 │\n", + "│ 4 │ 2 │ 2 │ 0.124662 │\n", + "│ 5 │ 3 │ 1 │ 0.589577 │\n", + "│ 6 │ 3 │ 1 │ 0.625023 │\n", + "│ 7 │ 4 │ 2 │ 0.418537 │\n", + "│ 8 │ 4 │ 2 │ 0.80303 │" ] }, "execution_count": 6, @@ -310,7 +310,7 @@ { "data": { "text/html": [ - "

8 rows × 3 columns

idid2v
Int64Int64Float64
1110.669188
2110.769019
3220.109742
4220.525894
5310.565507
6310.839502
7420.371262
8420.282013
" + "

8 rows × 3 columns

idid2v
Int64Int64Float64
1110.10478
2110.0138044
3220.12417
4220.124662
5310.589577
6310.625023
7420.418537
8420.80303
" ], "text/latex": [ "\\begin{tabular}{r|ccc}\n", @@ -318,29 +318,29 @@ "\t\\hline\n", "\t& Int64 & Int64 & Float64\\\\\n", "\t\\hline\n", - "\t1 & 1 & 1 & 0.669188 \\\\\n", - "\t2 & 1 & 1 & 0.769019 \\\\\n", - "\t3 & 2 & 2 & 0.109742 \\\\\n", - "\t4 & 2 & 2 & 0.525894 \\\\\n", - "\t5 & 3 & 1 & 0.565507 \\\\\n", - "\t6 & 3 & 1 & 0.839502 \\\\\n", - "\t7 & 4 & 2 & 0.371262 \\\\\n", - "\t8 & 4 & 2 & 0.282013 \\\\\n", + "\t1 & 1 & 1 & 0.10478 \\\\\n", + "\t2 & 1 & 1 & 0.0138044 \\\\\n", + "\t3 & 2 & 2 & 0.12417 \\\\\n", + "\t4 & 2 & 2 & 0.124662 \\\\\n", + "\t5 & 3 & 1 & 0.589577 \\\\\n", + "\t6 & 3 & 1 & 0.625023 \\\\\n", + "\t7 & 4 & 2 & 0.418537 \\\\\n", + "\t8 & 4 & 2 & 0.80303 \\\\\n", "\\end{tabular}\n" ], "text/plain": [ "8×3 DataFrame\n", - "│ Row │ id │ id2 │ v │\n", - "│ │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mFloat64\u001b[39m │\n", - "├─────┼───────┼───────┼──────────┤\n", - "│ 1 │ 1 │ 1 │ 0.669188 │\n", - "│ 2 │ 1 │ 1 │ 0.769019 │\n", - "│ 3 │ 2 │ 2 │ 0.109742 │\n", - "│ 4 │ 2 │ 2 │ 0.525894 │\n", - "│ 5 │ 3 │ 1 │ 0.565507 │\n", - "│ 6 │ 3 │ 1 │ 0.839502 │\n", - "│ 7 │ 4 │ 2 │ 0.371262 │\n", - "│ 8 │ 4 │ 2 │ 0.282013 │" + "│ Row │ id │ id2 │ v │\n", + "│ │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mFloat64\u001b[39m │\n", + "├─────┼───────┼───────┼───────────┤\n", + "│ 1 │ 1 │ 1 │ 0.10478 │\n", + "│ 2 │ 1 │ 1 │ 0.0138044 │\n", + "│ 3 │ 2 │ 2 │ 0.12417 │\n", + "│ 4 │ 2 │ 2 │ 0.124662 │\n", + "│ 5 │ 3 │ 1 │ 0.589577 │\n", + "│ 6 │ 3 │ 1 │ 0.625023 │\n", + "│ 7 │ 4 │ 2 │ 0.418537 │\n", + "│ 8 │ 4 │ 2 │ 0.80303 │" ] }, "execution_count": 7, @@ -574,7 +574,7 @@ { "data": { "text/html": [ - "

4 rows × 2 columns

idv_mean
CharFloat64
1'a'0.422648
2'd'0.49053
3'c'0.512698
4'b'0.476415
" + "

4 rows × 2 columns

idv_mean
CharFloat64
1'd'0.390678
2'a'0.497141
3'c'0.474066
4'b'0.596518
" ], "text/latex": [ "\\begin{tabular}{r|cc}\n", @@ -582,10 +582,10 @@ "\t\\hline\n", "\t& Char & Float64\\\\\n", "\t\\hline\n", - "\t1 & 'a' & 0.422648 \\\\\n", - "\t2 & 'd' & 0.49053 \\\\\n", - "\t3 & 'c' & 0.512698 \\\\\n", - "\t4 & 'b' & 0.476415 \\\\\n", + "\t1 & 'd' & 0.390678 \\\\\n", + "\t2 & 'a' & 0.497141 \\\\\n", + "\t3 & 'c' & 0.474066 \\\\\n", + "\t4 & 'b' & 0.596518 \\\\\n", "\\end{tabular}\n" ], "text/plain": [ @@ -593,10 +593,10 @@ "│ Row │ id │ v_mean │\n", "│ │ \u001b[90mChar\u001b[39m │ \u001b[90mFloat64\u001b[39m │\n", "├─────┼──────┼──────────┤\n", - "│ 1 │ 'a' │ 0.422648 │\n", - "│ 2 │ 'd' │ 0.49053 │\n", - "│ 3 │ 'c' │ 0.512698 │\n", - "│ 4 │ 'b' │ 0.476415 │" + "│ 1 │ 'd' │ 0.390678 │\n", + "│ 2 │ 'a' │ 0.497141 │\n", + "│ 3 │ 'c' │ 0.474066 │\n", + "│ 4 │ 'b' │ 0.596518 │" ] }, "execution_count": 13, @@ -618,7 +618,7 @@ { "data": { "text/html": [ - "

4 rows × 2 columns

idv_mean
CharFloat64
1'a'0.422648
2'b'0.476415
3'c'0.512698
4'd'0.49053
" + "

4 rows × 2 columns

idv_mean
CharFloat64
1'a'0.497141
2'b'0.596518
3'c'0.474066
4'd'0.390678
" ], "text/latex": [ "\\begin{tabular}{r|cc}\n", @@ -626,10 +626,10 @@ "\t\\hline\n", "\t& Char & Float64\\\\\n", "\t\\hline\n", - "\t1 & 'a' & 0.422648 \\\\\n", - "\t2 & 'b' & 0.476415 \\\\\n", - "\t3 & 'c' & 0.512698 \\\\\n", - "\t4 & 'd' & 0.49053 \\\\\n", + "\t1 & 'a' & 0.497141 \\\\\n", + "\t2 & 'b' & 0.596518 \\\\\n", + "\t3 & 'c' & 0.474066 \\\\\n", + "\t4 & 'd' & 0.390678 \\\\\n", "\\end{tabular}\n" ], "text/plain": [ @@ -637,10 +637,10 @@ "│ Row │ id │ v_mean │\n", "│ │ \u001b[90mChar\u001b[39m │ \u001b[90mFloat64\u001b[39m │\n", "├─────┼──────┼──────────┤\n", - "│ 1 │ 'a' │ 0.422648 │\n", - "│ 2 │ 'b' │ 0.476415 │\n", - "│ 3 │ 'c' │ 0.512698 │\n", - "│ 4 │ 'd' │ 0.49053 │" + "│ 1 │ 'a' │ 0.497141 │\n", + "│ 2 │ 'b' │ 0.596518 │\n", + "│ 3 │ 'c' │ 0.474066 │\n", + "│ 4 │ 'd' │ 0.390678 │" ] }, "execution_count": 14, @@ -660,7 +660,7 @@ { "data": { "text/html": [ - "

4 rows × 2 columns

idres
CharFloat64
1'a'0.422648
2'd'0.49053
3'c'0.512698
4'b'0.476415
" + "

4 rows × 2 columns

idres
CharFloat64
1'd'0.390678
2'a'0.497141
3'c'0.474066
4'b'0.596518
" ], "text/latex": [ "\\begin{tabular}{r|cc}\n", @@ -668,10 +668,10 @@ "\t\\hline\n", "\t& Char & Float64\\\\\n", "\t\\hline\n", - "\t1 & 'a' & 0.422648 \\\\\n", - "\t2 & 'd' & 0.49053 \\\\\n", - "\t3 & 'c' & 0.512698 \\\\\n", - "\t4 & 'b' & 0.476415 \\\\\n", + "\t1 & 'd' & 0.390678 \\\\\n", + "\t2 & 'a' & 0.497141 \\\\\n", + "\t3 & 'c' & 0.474066 \\\\\n", + "\t4 & 'b' & 0.596518 \\\\\n", "\\end{tabular}\n" ], "text/plain": [ @@ -679,10 +679,10 @@ "│ Row │ id │ res │\n", "│ │ \u001b[90mChar\u001b[39m │ \u001b[90mFloat64\u001b[39m │\n", "├─────┼──────┼──────────┤\n", - "│ 1 │ 'a' │ 0.422648 │\n", - "│ 2 │ 'd' │ 0.49053 │\n", - "│ 3 │ 'c' │ 0.512698 │\n", - "│ 4 │ 'b' │ 0.476415 │" + "│ 1 │ 'd' │ 0.390678 │\n", + "│ 2 │ 'a' │ 0.497141 │\n", + "│ 3 │ 'c' │ 0.474066 │\n", + "│ 4 │ 'b' │ 0.596518 │" ] }, "execution_count": 15, @@ -702,7 +702,7 @@ { "data": { "text/html": [ - "

4 rows × 3 columns

idres1res2
CharFloat64Float64
1'a'0.42264810.5662
2'd'0.4905312.2632
3'c'0.51269814.3555
4'b'0.47641510.4811
" + "

4 rows × 3 columns

idres1res2
CharFloat64Float64
1'd'0.39067811.7203
2'a'0.49714112.9257
3'c'0.4740669.00726
4'b'0.59651814.913
" ], "text/latex": [ "\\begin{tabular}{r|ccc}\n", @@ -710,10 +710,10 @@ "\t\\hline\n", "\t& Char & Float64 & Float64\\\\\n", "\t\\hline\n", - "\t1 & 'a' & 0.422648 & 10.5662 \\\\\n", - "\t2 & 'd' & 0.49053 & 12.2632 \\\\\n", - "\t3 & 'c' & 0.512698 & 14.3555 \\\\\n", - "\t4 & 'b' & 0.476415 & 10.4811 \\\\\n", + "\t1 & 'd' & 0.390678 & 11.7203 \\\\\n", + "\t2 & 'a' & 0.497141 & 12.9257 \\\\\n", + "\t3 & 'c' & 0.474066 & 9.00726 \\\\\n", + "\t4 & 'b' & 0.596518 & 14.913 \\\\\n", "\\end{tabular}\n" ], "text/plain": [ @@ -721,10 +721,10 @@ "│ Row │ id │ res1 │ res2 │\n", "│ │ \u001b[90mChar\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │\n", "├─────┼──────┼──────────┼─────────┤\n", - "│ 1 │ 'a' │ 0.422648 │ 10.5662 │\n", - "│ 2 │ 'd' │ 0.49053 │ 12.2632 │\n", - "│ 3 │ 'c' │ 0.512698 │ 14.3555 │\n", - "│ 4 │ 'b' │ 0.476415 │ 10.4811 │" + "│ 1 │ 'd' │ 0.390678 │ 11.7203 │\n", + "│ 2 │ 'a' │ 0.497141 │ 12.9257 │\n", + "│ 3 │ 'c' │ 0.474066 │ 9.00726 │\n", + "│ 4 │ 'b' │ 0.596518 │ 14.913 │" ] }, "execution_count": 16, @@ -744,7 +744,7 @@ { "data": { "text/html": [ - "

4 rows × 3 columns

idx1_sumx2_sum
CharFloat64Float64
1'a'14.60713.2739
2'b'13.769612.2106
3'd'14.656313.3629
4'c'8.996988.32711
" + "

4 rows × 3 columns

idx1_sumx2_sum
CharFloat64Float64
1'a'8.2360611.7367
2'd'11.725511.619
3'b'15.655519.0192
4'c'9.8651612.5744
" ], "text/latex": [ "\\begin{tabular}{r|ccc}\n", @@ -752,10 +752,10 @@ "\t\\hline\n", "\t& Char & Float64 & Float64\\\\\n", "\t\\hline\n", - "\t1 & 'a' & 14.607 & 13.2739 \\\\\n", - "\t2 & 'b' & 13.7696 & 12.2106 \\\\\n", - "\t3 & 'd' & 14.6563 & 13.3629 \\\\\n", - "\t4 & 'c' & 8.99698 & 8.32711 \\\\\n", + "\t1 & 'a' & 8.23606 & 11.7367 \\\\\n", + "\t2 & 'd' & 11.7255 & 11.619 \\\\\n", + "\t3 & 'b' & 15.6555 & 19.0192 \\\\\n", + "\t4 & 'c' & 9.86516 & 12.5744 \\\\\n", "\\end{tabular}\n" ], "text/plain": [ @@ -763,10 +763,10 @@ "│ Row │ id │ x1_sum │ x2_sum │\n", "│ │ \u001b[90mChar\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │\n", "├─────┼──────┼─────────┼─────────┤\n", - "│ 1 │ 'a' │ 14.607 │ 13.2739 │\n", - "│ 2 │ 'b' │ 13.7696 │ 12.2106 │\n", - "│ 3 │ 'd' │ 14.6563 │ 13.3629 │\n", - "│ 4 │ 'c' │ 8.99698 │ 8.32711 │" + "│ 1 │ 'a' │ 8.23606 │ 11.7367 │\n", + "│ 2 │ 'd' │ 11.7255 │ 11.619 │\n", + "│ 3 │ 'b' │ 15.6555 │ 19.0192 │\n", + "│ 4 │ 'c' │ 9.86516 │ 12.5744 │" ] }, "execution_count": 17, @@ -787,7 +787,7 @@ { "data": { "text/html": [ - "

4 rows × 3 columns

idx1_sumx2_sum
CharFloat64Float64
1'a'14.60713.2739
2'b'13.769612.2106
3'c'8.996988.32711
4'd'14.656313.3629
" + "

4 rows × 3 columns

idx1_sumx2_sum
CharFloat64Float64
1'a'8.2360611.7367
2'b'15.655519.0192
3'c'9.8651612.5744
4'd'11.725511.619
" ], "text/latex": [ "\\begin{tabular}{r|ccc}\n", @@ -795,10 +795,10 @@ "\t\\hline\n", "\t& Char & Float64 & Float64\\\\\n", "\t\\hline\n", - "\t1 & 'a' & 14.607 & 13.2739 \\\\\n", - "\t2 & 'b' & 13.7696 & 12.2106 \\\\\n", - "\t3 & 'c' & 8.99698 & 8.32711 \\\\\n", - "\t4 & 'd' & 14.6563 & 13.3629 \\\\\n", + "\t1 & 'a' & 8.23606 & 11.7367 \\\\\n", + "\t2 & 'b' & 15.6555 & 19.0192 \\\\\n", + "\t3 & 'c' & 9.86516 & 12.5744 \\\\\n", + "\t4 & 'd' & 11.7255 & 11.619 \\\\\n", "\\end{tabular}\n" ], "text/plain": [ @@ -806,10 +806,10 @@ "│ Row │ id │ x1_sum │ x2_sum │\n", "│ │ \u001b[90mChar\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │\n", "├─────┼──────┼─────────┼─────────┤\n", - "│ 1 │ 'a' │ 14.607 │ 13.2739 │\n", - "│ 2 │ 'b' │ 13.7696 │ 12.2106 │\n", - "│ 3 │ 'c' │ 8.99698 │ 8.32711 │\n", - "│ 4 │ 'd' │ 14.6563 │ 13.3629 │" + "│ 1 │ 'a' │ 8.23606 │ 11.7367 │\n", + "│ 2 │ 'b' │ 15.6555 │ 19.0192 │\n", + "│ 3 │ 'c' │ 9.86516 │ 12.5744 │\n", + "│ 4 │ 'd' │ 11.7255 │ 11.619 │" ] }, "execution_count": 18, @@ -836,7 +836,7 @@ { "data": { "text/html": [ - "

3 rows × 5 columns

x1x2x3x4x5
Float64Float64Float64Float64Float64
10.7942260.5739360.01825560.9701790.152322
20.376040.6673020.08199910.7851110.57178
30.02360830.4745790.6991370.6530990.407289
" + "

3 rows × 5 columns

x1x2x3x4x5
Float64Float64Float64Float64Float64
10.8714680.8084360.9112530.8741940.464073
20.1503540.05351180.4545320.5616120.992404
30.8564640.7201740.60330.03968770.766774
" ], "text/latex": [ "\\begin{tabular}{r|ccccc}\n", @@ -844,19 +844,19 @@ "\t\\hline\n", "\t& Float64 & Float64 & Float64 & Float64 & Float64\\\\\n", "\t\\hline\n", - "\t1 & 0.794226 & 0.573936 & 0.0182556 & 0.970179 & 0.152322 \\\\\n", - "\t2 & 0.37604 & 0.667302 & 0.0819991 & 0.785111 & 0.57178 \\\\\n", - "\t3 & 0.0236083 & 0.474579 & 0.699137 & 0.653099 & 0.407289 \\\\\n", + "\t1 & 0.871468 & 0.808436 & 0.911253 & 0.874194 & 0.464073 \\\\\n", + "\t2 & 0.150354 & 0.0535118 & 0.454532 & 0.561612 & 0.992404 \\\\\n", + "\t3 & 0.856464 & 0.720174 & 0.6033 & 0.0396877 & 0.766774 \\\\\n", "\\end{tabular}\n" ], "text/plain": [ "3×5 DataFrame\n", - "│ Row │ x1 │ x2 │ x3 │ x4 │ x5 │\n", - "│ │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │\n", - "├─────┼───────────┼──────────┼───────────┼──────────┼──────────┤\n", - "│ 1 │ 0.794226 │ 0.573936 │ 0.0182556 │ 0.970179 │ 0.152322 │\n", - "│ 2 │ 0.37604 │ 0.667302 │ 0.0819991 │ 0.785111 │ 0.57178 │\n", - "│ 3 │ 0.0236083 │ 0.474579 │ 0.699137 │ 0.653099 │ 0.407289 │" + "│ Row │ x1 │ x2 │ x3 │ x4 │ x5 │\n", + "│ │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │\n", + "├─────┼──────────┼───────────┼──────────┼───────────┼──────────┤\n", + "│ 1 │ 0.871468 │ 0.808436 │ 0.911253 │ 0.874194 │ 0.464073 │\n", + "│ 2 │ 0.150354 │ 0.0535118 │ 0.454532 │ 0.561612 │ 0.992404 │\n", + "│ 3 │ 0.856464 │ 0.720174 │ 0.6033 │ 0.0396877 │ 0.766774 │" ] }, "execution_count": 19, @@ -876,7 +876,7 @@ { "data": { "text/html": [ - "

1 rows × 5 columns

x1x2x3x4x5
Float64Float64Float64Float64Float64
10.3979580.5719390.2664640.8027960.37713
" + "

1 rows × 5 columns

x1x2x3x4x5
Float64Float64Float64Float64Float64
10.6260960.5273740.6563620.4918310.741084
" ], "text/latex": [ "\\begin{tabular}{r|ccccc}\n", @@ -884,15 +884,15 @@ "\t\\hline\n", "\t& Float64 & Float64 & Float64 & Float64 & Float64\\\\\n", "\t\\hline\n", - "\t1 & 0.397958 & 0.571939 & 0.266464 & 0.802796 & 0.37713 \\\\\n", + "\t1 & 0.626096 & 0.527374 & 0.656362 & 0.491831 & 0.741084 \\\\\n", "\\end{tabular}\n" ], "text/plain": [ "1×5 DataFrame\n", - "│ Row │ x1 │ x2 │ x3 │ x4 │ x5 │\n", - "│ │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │\n", - "├─────┼──────────┼──────────┼──────────┼──────────┼─────────┤\n", - "│ 1 │ 0.397958 │ 0.571939 │ 0.266464 │ 0.802796 │ 0.37713 │" + "│ Row │ x1 │ x2 │ x3 │ x4 │ x5 │\n", + "│ │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │\n", + "├─────┼──────────┼──────────┼──────────┼──────────┼──────────┤\n", + "│ 1 │ 0.626096 │ 0.527374 │ 0.656362 │ 0.491831 │ 0.741084 │" ] }, "execution_count": 20, @@ -913,11 +913,11 @@ "data": { "text/plain": [ "5-element Array{Float64,1}:\n", - " 0.39795790415870774\n", - " 0.5719388527626287 \n", - " 0.2664640269034721 \n", - " 0.802796253753856 \n", - " 0.3771303884586173 " + " 0.6260955643810758 \n", + " 0.5273739348161611 \n", + " 0.6563615251562763 \n", + " 0.49183121389389717\n", + " 0.7410837257895078 " ] }, "execution_count": 21, @@ -938,11 +938,11 @@ "name": "stdout", "output_type": "stream", "text": [ - "x1: 0.39795790415870774\n", - "x2: 0.5719388527626287\n", - "x3: 0.2664640269034721\n", - "x4: 0.802796253753856\n", - "x5: 0.3771303884586173\n" + "x1: 0.6260955643810758\n", + "x2: 0.5273739348161611\n", + "x3: 0.6563615251562763\n", + "x4: 0.49183121389389717\n", + "x5: 0.7410837257895078\n" ] } ], @@ -959,9 +959,9 @@ "data": { "text/plain": [ "3-element Array{Float64,1}:\n", - " 1.3838231125266938\n", - " 0.5635224473407595\n", - " 0.0497457748145321" + " 1.0779680742970097\n", + " 2.8097399040760487\n", + " 1.1892462969726694" ] }, "execution_count": 23, @@ -975,10 +975,14 @@ } ], "metadata": { + "@webio": { + "lastCommId": null, + "lastKernelId": null + }, "kernelspec": { - "display_name": "Julia 1.0.3", + "display_name": "Julia 1.1.0", "language": "julia", - "name": "julia-1.0" + "name": "julia-1.1" }, "language_info": { "file_extension": ".jl", diff --git a/11_performance.ipynb b/11_performance.ipynb index 4e1d8c0..c0104ab 100644 --- a/11_performance.ipynb +++ b/11_performance.ipynb @@ -5,7 +5,7 @@ "metadata": {}, "source": [ "# Introduction to DataFrames\n", - "**[Bogumił Kamiński](http://bogumilkaminski.pl/about/), April 27, 2019**" + "**[Bogumił Kamiński](http://bogumilkaminski.pl/about/), July 16, 2019**" ] }, { @@ -41,14 +41,14 @@ "name": "stdout", "output_type": "stream", "text": [ - " 4.112 ns (0 allocations: 0 bytes)\n", - " 13.879 ns (0 allocations: 0 bytes)\n" + " 4.199 ns (0 allocations: 0 bytes)\n", + " 14.328 ns (0 allocations: 0 bytes)\n" ] } ], "source": [ "x = DataFrame(rand(5, 1000))\n", - "@btime $x[500];\n", + "@btime $x[!, 500];\n", "@btime $x.x500;" ] }, @@ -68,7 +68,7 @@ "name": "stdout", "output_type": "stream", "text": [ - " 83.589 ms (5999023 allocations: 122.06 MiB)\n" + " 83.402 ms (5999023 allocations: 122.06 MiB)\n" ] } ], @@ -76,7 +76,7 @@ "using Random\n", "function f_bad() # this function will be slow\n", " Random.seed!(1); x = DataFrame(rand(1000000,2))\n", - " y, z = x[1], x[2]\n", + " y, z = x[!, 1], x[!, 2]\n", " p = 0.0\n", " for i in 1:nrow(x)\n", " p += y[i]*z[i]\n", @@ -98,8 +98,8 @@ "name": "stdout", "output_type": "stream", "text": [ - " 12.459 ms (45 allocations: 30.52 MiB)\n", - " 12.350 ms (45 allocations: 30.52 MiB)\n" + " 12.379 ms (45 allocations: 30.52 MiB)\n", + " 12.863 ms (45 allocations: 30.52 MiB)\n" ] } ], @@ -115,13 +115,13 @@ "\n", "function f_barrier() # extract the work to an inner function\n", " Random.seed!(1); x = DataFrame(rand(1000000,2))\n", - " f_inner(x[1], x[2])\n", + " f_inner(x[!, 1], x[!, 2])\n", "end\n", "\n", "using LinearAlgebra\n", "function f_inbuilt() # or use inbuilt function if possible\n", " Random.seed!(1); x = DataFrame(rand(1000000,2))\n", - " dot(x[1], x[2])\n", + " dot(x[!, 1], x[!, 2])\n", "end\n", "\n", "@btime f_barrier();\n", @@ -137,7 +137,7 @@ "name": "stdout", "output_type": "stream", "text": [ - " 12.330 ms (45 allocations: 30.52 MiB)\n" + " 12.582 ms (45 allocations: 30.52 MiB)\n" ] } ], @@ -147,7 +147,7 @@ "# This example assumes that you have DataFrames master at least from August 31, 2018\n", "function f_typed()\n", " Random.seed!(1); x = DataFrame(rand(1000000,2))\n", - " y::Vector{Float64}, z::Vector{Float64} = x[1], x[2]\n", + " y::Vector{Float64}, z::Vector{Float64} = x[!, 1], x[!, 2]\n", " p = 0.0\n", " for i in 1:nrow(x)\n", " p += y[i]*z[i]\n", @@ -181,10 +181,10 @@ "name": "stdout", "output_type": "stream", "text": [ - " 20.568 ms (1949837 allocations: 37.42 MiB)\n", - " 23.942 ms (1950037 allocations: 45.06 MiB)\n", - " 1.632 ms (937 allocations: 7.69 MiB)\n", - " 2.739 ms (1137 allocations: 15.32 MiB)\n" + " 20.849 ms (1949837 allocations: 37.42 MiB)\n", + " 21.840 ms (1950037 allocations: 45.06 MiB)\n", + " 1.568 ms (937 allocations: 7.69 MiB)\n", + " 2.538 ms (1137 allocations: 15.32 MiB)\n" ] } ], @@ -192,7 +192,7 @@ "function f1()\n", " x = DataFrame!([Vector{Float64}(undef, 10^4) for i in 1:100]) # we work with a DataFrame directly\n", " for c in 1:ncol(x)\n", - " d = x[c]\n", + " d = x[!, c]\n", " for r in 1:nrow(x)\n", " d[r] = rand()\n", " end\n", @@ -203,7 +203,7 @@ "function f1a()\n", " x = DataFrame([Vector{Float64}(undef, 10^4) for i in 1:100]) # we work with a DataFrame directly\n", " for c in 1:ncol(x)\n", - " d = x[c]\n", + " d = x[!, c]\n", " for r in 1:nrow(x)\n", " d[r] = rand()\n", " end\n", @@ -257,9 +257,9 @@ "name": "stdout", "output_type": "stream", "text": [ - " 14.224 ms (175 allocations: 38.16 MiB)\n", - " 172.509 ns (1 allocation: 16 bytes)\n", - " 199.227 ns (5 allocations: 80 bytes)\n" + " 13.669 ms (174 allocations: 38.16 MiB)\n", + " 166.582 ns (1 allocation: 16 bytes)\n", + " 193.721 ns (5 allocations: 80 bytes)\n" ] } ], @@ -293,24 +293,24 @@ "text": [ "Int64\n", " raw:\n", - " 4.660 ms (7 allocations: 7.63 MiB)\n", + " 4.625 ms (7 allocations: 7.63 MiB)\n", " categorical:\n", - " 18.671 ms (4 allocations: 608 bytes)\n", + " 18.108 ms (4 allocations: 608 bytes)\n", "String\n", " raw:\n", - " 23.233 ms (4 allocations: 608 bytes)\n", + " 23.858 ms (4 allocations: 608 bytes)\n", " categorical:\n", - " 28.929 ms (4 allocations: 608 bytes)\n", + " 30.332 ms (4 allocations: 608 bytes)\n", "Union{Missing, Int64}\n", " raw:\n", - " 10.270 ms (4 allocations: 624 bytes)\n", + " 10.390 ms (4 allocations: 624 bytes)\n", " categorical:\n", - " 18.987 ms (4 allocations: 608 bytes)\n", + " 18.695 ms (4 allocations: 608 bytes)\n", "Union{Missing, String}\n", " raw:\n", - " 19.391 ms (4 allocations: 608 bytes)\n", + " 24.059 ms (4 allocations: 608 bytes)\n", " categorical:\n", - " 30.102 ms (4 allocations: 608 bytes)\n" + " 37.816 ms (4 allocations: 608 bytes)\n" ] } ], @@ -359,13 +359,13 @@ "name": "stdout", "output_type": "stream", "text": [ - " 353.072 ms (192 allocations: 471.33 MiB)\n" + " 313.270 ms (196 allocations: 433.19 MiB)\n" ] }, { "data": { "text/html": [ - "

4 rows × 2 columns

xx1
CharInt64
1'b'2498764
2'd'2499255
3'a'2500996
4'c'2500985
" + "

4 rows × 2 columns

xx1
CharInt64
1'b'2504347
2'd'2498415
3'c'2499953
4'a'2497285
" ], "text/latex": [ "\\begin{tabular}{r|cc}\n", @@ -373,10 +373,10 @@ "\t\\hline\n", "\t& Char & Int64\\\\\n", "\t\\hline\n", - "\t1 & 'b' & 2498764 \\\\\n", - "\t2 & 'd' & 2499255 \\\\\n", - "\t3 & 'a' & 2500996 \\\\\n", - "\t4 & 'c' & 2500985 \\\\\n", + "\t1 & 'b' & 2504347 \\\\\n", + "\t2 & 'd' & 2498415 \\\\\n", + "\t3 & 'c' & 2499953 \\\\\n", + "\t4 & 'a' & 2497285 \\\\\n", "\\end{tabular}\n" ], "text/plain": [ @@ -384,10 +384,10 @@ "│ Row │ x │ x1 │\n", "│ │ \u001b[90mChar\u001b[39m │ \u001b[90mInt64\u001b[39m │\n", "├─────┼──────┼─────────┤\n", - "│ 1 │ 'b' │ 2498764 │\n", - "│ 2 │ 'd' │ 2499255 │\n", - "│ 3 │ 'a' │ 2500996 │\n", - "│ 4 │ 'c' │ 2500985 │" + "│ 1 │ 'b' │ 2504347 │\n", + "│ 2 │ 'd' │ 2498415 │\n", + "│ 3 │ 'c' │ 2499953 │\n", + "│ 4 │ 'a' │ 2497285 │" ] }, "execution_count": 10, @@ -408,13 +408,13 @@ "name": "stdout", "output_type": "stream", "text": [ - " 216.236 ms (152 allocations: 395.04 MiB)\n" + " 218.989 ms (157 allocations: 356.89 MiB)\n" ] }, { "data": { "text/html": [ - "

4 rows × 2 columns

xy_sum
CharInt64
1'b'2498764
2'd'2499255
3'a'2500996
4'c'2500985
" + "

4 rows × 2 columns

xy_sum
CharInt64
1'b'2504347
2'd'2498415
3'c'2499953
4'a'2497285
" ], "text/latex": [ "\\begin{tabular}{r|cc}\n", @@ -422,10 +422,10 @@ "\t\\hline\n", "\t& Char & Int64\\\\\n", "\t\\hline\n", - "\t1 & 'b' & 2498764 \\\\\n", - "\t2 & 'd' & 2499255 \\\\\n", - "\t3 & 'a' & 2500996 \\\\\n", - "\t4 & 'c' & 2500985 \\\\\n", + "\t1 & 'b' & 2504347 \\\\\n", + "\t2 & 'd' & 2498415 \\\\\n", + "\t3 & 'c' & 2499953 \\\\\n", + "\t4 & 'a' & 2497285 \\\\\n", "\\end{tabular}\n" ], "text/plain": [ @@ -433,10 +433,10 @@ "│ Row │ x │ y_sum │\n", "│ │ \u001b[90mChar\u001b[39m │ \u001b[90mInt64\u001b[39m │\n", "├─────┼──────┼─────────┤\n", - "│ 1 │ 'b' │ 2498764 │\n", - "│ 2 │ 'd' │ 2499255 │\n", - "│ 3 │ 'a' │ 2500996 │\n", - "│ 4 │ 'c' │ 2500985 │" + "│ 1 │ 'b' │ 2504347 │\n", + "│ 2 │ 'd' │ 2498415 │\n", + "│ 3 │ 'c' │ 2499953 │\n", + "│ 4 │ 'a' │ 2497285 │" ] }, "execution_count": 11, @@ -466,13 +466,13 @@ "name": "stdout", "output_type": "stream", "text": [ - " 110.713 ms (187 allocations: 190.75 MiB)\n" + " 97.493 ms (176 allocations: 152.60 MiB)\n" ] }, { "data": { "text/html": [ - "

4 rows × 2 columns

xy_sum
Categorical…Int64
1'a'2500996
2'b'2498764
3'c'2500985
4'd'2499255
" + "

4 rows × 2 columns

xy_sum
Categorical…Int64
1'a'2497285
2'b'2504347
3'c'2499953
4'd'2498415
" ], "text/latex": [ "\\begin{tabular}{r|cc}\n", @@ -480,10 +480,10 @@ "\t\\hline\n", "\t& Categorical… & Int64\\\\\n", "\t\\hline\n", - "\t1 & 'a' & 2500996 \\\\\n", - "\t2 & 'b' & 2498764 \\\\\n", - "\t3 & 'c' & 2500985 \\\\\n", - "\t4 & 'd' & 2499255 \\\\\n", + "\t1 & 'a' & 2497285 \\\\\n", + "\t2 & 'b' & 2504347 \\\\\n", + "\t3 & 'c' & 2499953 \\\\\n", + "\t4 & 'd' & 2498415 \\\\\n", "\\end{tabular}\n" ], "text/plain": [ @@ -491,10 +491,10 @@ "│ Row │ x │ y_sum │\n", "│ │ \u001b[90mCategorical…\u001b[39m │ \u001b[90mInt64\u001b[39m │\n", "├─────┼──────────────┼─────────┤\n", - "│ 1 │ 'a' │ 2500996 │\n", - "│ 2 │ 'b' │ 2498764 │\n", - "│ 3 │ 'c' │ 2500985 │\n", - "│ 4 │ 'd' │ 2499255 │" + "│ 1 │ 'a' │ 2497285 │\n", + "│ 2 │ 'b' │ 2504347 │\n", + "│ 3 │ 'c' │ 2499953 │\n", + "│ 4 │ 'd' │ 2498415 │" ] }, "execution_count": 13, @@ -526,30 +526,24 @@ "10000000-element PooledArray{Char,UInt8,1,Array{UInt8,1}}:\n", " 'b'\n", " 'd'\n", - " 'a'\n", - " 'd'\n", " 'b'\n", - " 'c'\n", - " 'a'\n", " 'd'\n", " 'c'\n", - " 'a'\n", - " 'c'\n", - " 'c'\n", - " 'a'\n", - " ⋮ \n", - " 'b'\n", " 'b'\n", " 'b'\n", " 'b'\n", - " 'd'\n", " 'c'\n", + " 'c'\n", + " ⋮ \n", " 'a'\n", - " 'a'\n", + " 'c'\n", " 'b'\n", " 'b'\n", + " 'd'\n", " 'c'\n", - " 'c'" + " 'b'\n", + " 'a'\n", + " 'a'" ] }, "execution_count": 15, @@ -570,13 +564,13 @@ "name": "stdout", "output_type": "stream", "text": [ - " 128.121 ms (167 allocations: 162.14 MiB)\n" + " 97.074 ms (166 allocations: 152.60 MiB)\n" ] }, { "data": { "text/html": [ - "

4 rows × 2 columns

xy_sum
CharInt64
1'b'2498764
2'd'2499255
3'a'2500996
4'c'2500985
" + "

4 rows × 2 columns

xy_sum
CharInt64
1'b'2504347
2'd'2498415
3'c'2499953
4'a'2497285
" ], "text/latex": [ "\\begin{tabular}{r|cc}\n", @@ -584,10 +578,10 @@ "\t\\hline\n", "\t& Char & Int64\\\\\n", "\t\\hline\n", - "\t1 & 'b' & 2498764 \\\\\n", - "\t2 & 'd' & 2499255 \\\\\n", - "\t3 & 'a' & 2500996 \\\\\n", - "\t4 & 'c' & 2500985 \\\\\n", + "\t1 & 'b' & 2504347 \\\\\n", + "\t2 & 'd' & 2498415 \\\\\n", + "\t3 & 'c' & 2499953 \\\\\n", + "\t4 & 'a' & 2497285 \\\\\n", "\\end{tabular}\n" ], "text/plain": [ @@ -595,10 +589,10 @@ "│ Row │ x │ y_sum │\n", "│ │ \u001b[90mChar\u001b[39m │ \u001b[90mInt64\u001b[39m │\n", "├─────┼──────┼─────────┤\n", - "│ 1 │ 'b' │ 2498764 │\n", - "│ 2 │ 'd' │ 2499255 │\n", - "│ 3 │ 'a' │ 2500996 │\n", - "│ 4 │ 'c' │ 2500985 │" + "│ 1 │ 'b' │ 2504347 │\n", + "│ 2 │ 'd' │ 2498415 │\n", + "│ 3 │ 'c' │ 2499953 │\n", + "│ 4 │ 'a' │ 2497285 │" ] }, "execution_count": 16, @@ -625,74 +619,62 @@ { "data": { "text/html": [ - "

100 rows × 1,000 columns (omitted printing of 993 columns)

x1x2x3x4x5x6x7
Float64Float64Float64Float64Float64Float64Float64
10.4694270.8936050.3483010.1898530.6026940.4270640.120058
20.7741870.3568670.8855260.112750.7806690.5930820.939199
30.6097140.2885310.3552830.4808040.5939350.8931380.99899
40.6947830.5703240.07899850.8180040.5549420.09963720.861696
50.7913020.9052820.1177970.4068550.6815480.8194960.0545339
60.07405490.6798260.1688220.5188380.3355020.5653560.819869
70.6218340.7597740.5625380.5604360.2691230.3402530.532622
80.10390.9196970.4189450.8133560.7164390.5457160.783745
90.9540890.8084110.07821120.1549670.7305120.573850.0323516
100.4840410.06703060.5681930.2362120.6485550.2821260.819354
110.6103010.5533080.4647050.25720.3273190.9283810.677589
120.6717590.03588560.6621340.529690.1992690.8844870.724972
130.916240.9859050.4305270.5823210.6356740.5144790.398271
140.5980990.0735870.8113090.4640780.0438880.4498270.823583
150.1081070.9939880.4741590.5530980.865450.7964070.58157
160.8778110.2346630.7806570.4269090.5722770.2176170.0395133
170.8884150.283290.6959830.4474240.06846270.4279420.117392
180.4750980.7088050.0009505590.6205680.7880720.9830170.487377
190.5696460.5309910.4148470.5756290.7353230.8701510.639259
200.2822790.6865570.7597130.4422140.8785990.7712610.962957
210.6211190.2772820.6598750.7707780.03391440.9013820.614408
220.005780110.4901240.1587360.05486380.5472780.3346880.645415
230.3363310.8334460.9909590.8195310.7445710.8945320.259292
240.8188680.1222610.4496990.9971030.9916520.06502570.985957
250.7514880.03488710.4424470.8116860.6171230.6003120.0492889
260.2899110.4684360.2961110.3093920.6398480.2283680.197872
270.2462390.1371460.2196540.6313270.1511760.2476540.591798
280.5512380.7851430.3831370.1604810.5755380.2125150.132044
290.007901990.2432780.2961370.9507610.5075070.8958890.582313
300.6481460.7210990.9878360.8041390.02431840.4607290.726689
" + "

100 rows × 1,000 columns (omitted printing of 909 columns)

x1x2x3x4x5x6x7x8x9x10x11x12x13x14x15x16x17x18x19x20x21x22x23x24x25x26x27x28x29x30x31x32x33x34x35x36x37x38x39x40x41x42x43x44x45x46x47x48x49x50x51x52x53x54x55x56x57x58x59x60x61x62x63x64x65x66x67x68x69x70x71x72x73x74x75x76x77x78x79x80x81x82x83x84x85x86x87x88x89x90x91
Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64
10.6912380.5029410.1132970.3287380.133780.4412780.6850020.05382190.07617980.7692350.2842910.1713520.7545630.6487360.09532250.7758890.8410430.3119330.568140.5777250.1925990.006040970.5812880.7462450.3855090.3554550.9292210.7292910.7787830.5981020.4983730.02782660.04626160.08045850.4860050.8296650.6054890.9226190.6159830.9751460.2184670.2144580.2015250.3886450.5584040.1637820.4376830.8977020.06960740.6568730.0966460.6044820.8261480.902220.2131580.1456330.7155240.8212020.8512740.8094650.9388940.8334930.01282050.9114470.5729250.4924020.706850.3917350.3799560.8941970.3196080.2827240.6625290.7513710.05157580.05545550.4072530.7147580.9304540.341330.4092260.05938620.9434530.3962890.6113590.6303750.01229840.9485870.3953670.9122410.192444
20.8153570.77030.2391760.2757480.1839240.5073410.2844180.287080.9429020.08879630.7345110.3790750.4346350.4746510.2804650.1805450.9970930.585340.4040390.05747750.8292380.5516270.06090860.8666730.002038380.231220.1001990.5424270.61760.2108460.1694620.3173310.1207020.5227140.7718540.8610750.6070280.5771050.02639730.5085190.2071150.2602030.9664950.9505630.235150.8072330.6679590.4694120.689440.3031780.9161980.1758270.6305860.6175250.4361640.303170.05967420.09821030.0942690.7749180.745360.451680.09283070.3142550.8375640.5078780.6338390.2987480.5018130.6674210.2441020.991870.3201460.3277640.09720440.8652510.3702630.2076170.4906220.1280180.9730840.7693520.7809470.2581480.8129330.834840.4329960.5116920.6113350.8771680.742428
30.8161040.03115510.56830.7044950.5493850.4719990.5435250.8786110.05538130.4334130.7211130.905620.8225920.1011550.2159810.07276270.5797110.5791510.7553250.6325990.6761990.9218290.7496050.9811360.102490.9535560.509450.6462690.3969880.9329690.5060110.3870920.5135680.5487990.1173010.7491990.1616640.5070670.9822890.05541180.07239730.2961740.26170.04648740.01681450.9389440.7311080.4642760.02820410.1125490.7457490.4323140.6938350.9566630.1776740.8749480.5879310.8342670.7515710.8716070.1186880.8959950.6881510.9317420.04706470.3565650.6480140.3142320.901120.8378020.4193390.1267340.002684670.8430030.5051440.56020.09850520.8619540.8606440.2046820.6340350.5537710.2208320.4162340.9000750.0952380.3234090.4616870.0992010.0434330.690487
40.02940960.6029840.3574920.5889660.1001760.1632190.37190.06340150.573080.7958950.894250.08496260.7637440.2391180.7221830.8561420.1808640.5812030.33040.5208270.01409020.4026480.4922880.04192670.5658550.1857070.9120920.2760220.6877330.1528180.5961990.2468810.6244060.869240.609330.6628770.973190.1121810.4174010.3845640.8242040.9362040.7103950.9620750.4298010.7815520.1107240.2387360.2399620.8055890.453640.8277960.06703840.6514660.1360.5967210.08771390.1472650.6215430.1857660.9357940.9404960.0415510.3804340.8045940.4632350.6145970.9952590.8539420.9097780.6778350.1366240.01016550.3131830.7933150.6400750.8020040.3556510.7973190.8111420.86650.4408610.1103270.5910430.3825440.3452570.5067680.3447830.01902080.3711570.885855
50.7352940.5184960.8677510.9447260.3045920.3419130.6819180.07129810.9992970.83930.9495660.4616140.2496930.53510.9080430.1970590.6883230.2005070.04505620.705580.7704840.08544220.8436480.6410520.4086620.4796130.475070.8268970.1684350.4333820.5021580.2740560.613350.899710.7177240.948180.3753890.9535530.4550640.4835640.06751890.2749720.02852960.6839660.1927590.2635760.5319610.2277040.1023020.7864720.0283730.03354190.902080.4939960.8606810.5130630.06374730.1850340.9409870.0290710.7151090.1990150.4308760.0386090.8434660.5549070.1302220.253810.9272730.72020.454380.9680650.2441170.9649510.599480.03359060.08743230.9197340.570890.5413530.7436580.9531080.6018840.1702920.7903720.03001060.6508490.6910830.6729810.2114330.31572
60.1049850.7484840.2709280.7268060.2423530.4246510.891670.09894720.636580.4516630.582070.371810.7841280.8814450.5222630.8439950.6471460.5105280.7608640.1760080.6046820.5299280.8683410.9561010.6363430.3468880.3834130.1248920.1373290.9533850.0194730.9182180.2175210.4541260.2161840.1288650.710090.2024030.7863430.3763440.8761840.1734440.5432720.5692410.2174850.542970.7948950.1974360.4059650.2184830.6216210.5889010.557980.7589980.01902270.01413010.2622260.5267820.8972840.1603780.8829610.9088240.2889730.9957710.2178690.1556130.142740.3981370.7152170.6712680.3091470.09808750.05068520.7053880.8565810.4900660.8684830.9231260.1340350.05158820.7451220.9670050.567910.4780490.09063940.1242890.3334550.1330290.7857990.003073110.0231871
70.1229630.2990710.3988450.5957420.8979180.7672770.5288690.09528540.8760140.919850.2742280.2351760.1551680.8971070.8441950.5232810.6958640.1511240.2010650.4330010.9673060.2772110.06339770.5590570.8034750.9558280.4180650.1768160.4520770.2126050.3591620.8724560.9540560.009695820.6542530.4511680.9361560.836780.3529080.3556790.3513660.69760.1826770.5823760.4466690.4688310.9865640.7872020.02072180.8304620.5287910.6492640.4625570.4958860.3319460.2074920.1471960.4134810.3846680.2894110.6713210.08492570.8220760.6917350.002013290.9860010.2551160.627950.4394290.8550330.03928760.5339680.9545280.6215680.5542240.2450840.4301270.03936550.8610530.791460.194310.1306470.3204690.798840.5084520.6158160.6201540.599710.954220.1758570.0561981
80.2855650.8602970.7617790.4939530.3527950.09782390.333350.2712010.9255240.9173750.5761620.2681330.1255110.4904540.3442440.7017160.9743150.6271480.7197980.8970830.3550130.5259640.12930.4699460.2200790.3635050.5114360.1212520.223580.9132050.002647640.689590.7809740.07838560.7965060.1100540.3685870.1939970.290980.8684280.7863190.5452610.9191140.762110.9998730.3576830.4326890.6639050.1004880.9510570.5162710.4830880.948850.2025030.3036440.8918880.7958520.6079040.853760.1032060.7142240.6462760.3209430.09626260.2517220.7326070.7938140.728890.4326180.4257250.5092170.09018410.04284520.6628010.209990.785450.4177130.5873980.297830.4439770.6571210.6148540.1710360.3330220.6008910.6904450.7115910.3533830.8723370.566930.650327
90.6994750.5265470.488270.8338430.3989020.340970.4344160.7374170.6016610.9487480.1431680.398570.2740690.4415890.9075230.7767780.08807580.5632840.0357410.9655010.1581150.9354670.01071910.7940950.3064850.5638380.2345640.4708660.5453370.8829250.6526530.4841420.04443460.9266490.08936850.1490060.1968850.9021770.2340350.5180220.05080960.7340570.710990.5873930.8994630.1451480.1307720.6181490.2312090.5469010.5363240.3817860.1107660.5359490.1883010.5235420.6090680.6914220.7854890.27710.1985040.1493130.2834980.09286730.4554940.0173880.6331550.6693830.5738610.7477480.8555550.8593110.3435750.3263340.7040960.7523420.6440270.05844090.3744890.4688530.3013440.8598810.3530320.3641080.7123820.07968230.6395220.7998120.7654720.4499260.00834814
100.1669660.392480.9274110.3754080.9484020.746140.1659050.609240.6582420.4052630.2505410.2503690.5283830.8824830.6696350.4687190.2116850.5713050.9419350.03996020.9495720.8849020.8748460.9354720.7530270.2227450.0729640.4462660.6657540.4944790.5944260.227920.3044950.322870.8460790.6355260.1761670.3351380.5280780.7444760.3697960.5418710.6389830.5125640.2783640.3798620.9818460.3107890.925630.3455310.05659160.09727910.3579560.9790570.9875610.805290.4674110.3297240.8976480.8606020.1499860.4809470.8358660.5611210.1283140.9620590.108650.04817610.8422910.5577560.2909920.721970.2158490.7844640.4807550.3254510.001248070.2551670.6517530.8617890.6545180.3959870.6862110.2012020.8075690.9665990.8585890.05423310.8033820.1535090.349456
110.4168850.7861120.8921380.6035280.4008570.4880440.8050610.8155090.9490730.09970920.6899060.4712510.02540830.9395110.03819780.878840.2996370.9996470.3092960.02010420.5143130.5568540.2136650.1255290.6440930.7761430.4282170.4103610.317590.1873170.2716770.4334290.09150860.6906140.3049140.6141190.0170710.4325370.2414120.5714070.7065050.0535530.2291290.4108330.3000250.3665730.504430.8156110.4072970.08826540.2214590.9474580.1615450.9082590.4915130.2127440.06165680.6452130.4549060.371590.1491140.1938230.5081720.01995970.1208650.1454930.07984370.2807950.3292650.4753990.3408690.8956080.5638040.2580640.1217890.9214110.09509390.5800730.7583490.6254540.7528840.8027180.9201750.7173420.7198590.4241760.8372970.4702770.9803790.7571670.152447
120.7545680.2521410.1258410.7438680.3222890.2487480.2331310.9011510.5417490.4515070.7438210.1153090.05336590.2245790.4271370.7329490.01395830.5189520.5244480.7082390.6808340.5039470.2976880.7584440.1550560.7258850.5600220.8786970.7887120.09111590.3516820.154560.161060.9385850.5129010.6676430.1543210.9482080.6853530.4009090.2352720.1379610.6345720.3051390.4689470.7832770.1607020.8019330.2705040.545680.7400960.4532970.4798790.4458930.5538240.6247740.3873260.5220140.4256190.7282920.5665350.8232660.1881840.9544090.6923470.7231160.3340680.1567180.0507760.6496840.5238170.9513660.9819990.1315950.631620.04578240.7885640.8380330.6104280.8492410.146340.4003930.6292830.7047380.114850.2023870.01255210.05004470.9528130.1033880.916409
130.3598050.708690.1809210.3182760.6962530.7803910.3950350.4942160.8162860.9281570.04776570.6736650.8099890.1606940.09902860.6278710.5013070.4607850.4145880.9110450.1030210.6548510.5880150.8166750.2299590.9968140.3908150.2895450.695590.7472030.6766330.8877630.008912860.5309440.5411940.3549790.9530860.1485020.5608640.4751620.9699710.007434050.111610.7048050.2053230.5457160.7567460.4947020.7253810.683070.3686490.8153660.7441840.4168540.1134170.01617770.2378710.3288690.3885940.8274950.5253080.6735680.07872240.1465680.4850660.8776840.4161920.5710450.1821550.1343230.1509760.7420430.3313990.4417210.2584350.1793650.5473260.03967020.9011110.8751820.09404960.1357480.8159060.3186380.4676410.3506950.4387210.03068960.8263480.1887780.778235
140.2566970.4421840.8826680.2951390.6612510.3459270.006187380.8396140.1266780.3678960.9055650.9921910.8142390.8919560.9455230.1056620.1446740.7429110.01996840.6009050.9388250.6378990.5749960.9591440.2891370.057060.5347040.8599480.7921360.6994350.4529280.006288750.6463280.006259860.09489430.5095640.8310570.1505890.997550.8256370.3591160.259170.1849870.2462930.6789590.2467040.2626690.6732080.3120370.321520.5680420.05130860.4042070.8824840.5441770.8578760.5372790.1201860.01974110.1349760.4903670.9153330.2673320.6083440.7023210.8181140.1285230.9232540.1987970.366470.6903480.4416210.07543820.8279730.2879050.1516590.9082830.6222340.9243940.4373730.2493880.3434540.09023690.953580.52750.4900040.4481210.4346730.7038030.3988940.106829
150.7851110.02877010.7236530.4200170.3693920.125330.6135610.3535830.04842570.481460.005904970.4030210.9287660.9366540.01481830.5416170.08877070.654630.1127950.8198530.1530620.7538440.1571420.8012860.5796880.09083880.3560380.7446430.2503920.9083470.7231840.6808190.2556660.5823740.1599950.05513490.258480.9564040.1066780.5786840.8191280.8356110.1642390.3527780.2608870.3400430.3592650.7531890.6914520.4653580.2945450.1018170.4087530.1970660.8912210.4491960.3538850.8178790.3026340.7813190.8781460.2233730.3418640.670.8185680.457430.01065340.1093490.7552550.5542980.01871930.4704330.7472510.8832220.03431460.07226840.821990.2139060.9161310.434220.6866340.08130540.5158260.4411130.3694520.4684560.7004180.1995840.7907780.8768550.197238
160.1191750.9974070.6000710.1501340.2948670.2328840.03593520.04052970.9569440.2066120.8911090.5369230.4448050.05920910.3497840.0411290.2040620.3561620.4270580.4366550.3239650.4052040.2435170.09833560.7079260.6267720.3973750.1030480.4937540.05127340.2840980.9055250.25570.4921560.2173490.727580.457740.7575750.5043590.1111950.1449460.635630.6407650.4735290.8888420.06624610.06695010.09378190.2847740.3884540.3150830.7059650.1102450.5453340.3289490.9532120.8695230.8836710.7890610.5385120.176620.6791050.7562350.7009650.7140960.7732860.8386770.1941380.1892360.8016070.9280730.211810.597940.9393690.63010.4284230.4007260.3920680.2762250.6473710.2045360.8037160.7563230.6302740.9813070.6693120.7310450.6869360.8301850.2256910.718969
170.7675170.09174490.982610.1552350.7798220.6976220.2763950.03348670.2114880.6560950.2718490.9214270.7048990.1255850.6775680.2970450.4386710.1419780.1976530.145720.9011210.8263080.2547550.9634870.699930.7996280.3840870.6942980.5058280.3256420.5181230.3864660.864650.728360.2829260.63560.249070.7052370.1855390.7394880.3165570.9907320.2919090.9191340.6093850.7415140.1000090.5357350.1988620.8828380.4971250.9958070.01034570.8208630.6267460.2961940.965740.6555980.4368260.1637910.6594490.365530.821490.9765030.887550.1252860.7008330.9469640.08481340.1967140.9377690.6529070.6194120.7222750.5664190.1370320.4210720.8831180.0761930.9240650.7420580.6952280.6924210.8149060.07843020.3950740.01955940.06440420.1921340.2260810.305123
180.09121030.8581230.5231570.3414570.01883690.6540980.7134150.1295120.1119480.4592080.1836550.9204330.9974780.6508430.04169780.9837410.04094160.6811680.6523020.3804780.1826720.489640.1839320.7790650.5315860.7312070.5460160.2096420.3880150.7078850.4014690.4149960.341440.1236680.975120.6005680.8409340.08444930.833620.01646640.6439740.3701580.363410.494190.1346670.1116540.06037240.01927270.8176290.3375110.2827390.04275350.4289960.9915090.6996130.9421490.9790180.7746270.2635820.03438290.6913450.5297150.34910.5683080.4452660.8606630.7378980.1587010.08534440.6717370.7786760.6163310.6051660.1379210.492650.0848790.4900770.8404410.8050080.5771310.1645460.5858870.7124410.04067180.8137990.5977280.313940.4934420.7555670.1482720.780615
190.4765910.8007180.112650.2830650.6859960.9485670.9220450.3937860.2356920.9230320.3890980.3058080.07571940.6438330.5088980.9091840.2891960.4490110.4491660.28760.03470740.441470.1038660.5268550.9830310.09322530.5373590.311360.3475290.3792310.2241180.6681620.1285170.5397990.1723490.4359910.1808260.1047180.9329850.02093170.2869290.6441480.3457790.7233410.6754010.2203160.08208710.3215890.6934570.4090980.0449190.9826010.9025140.8120160.5305560.08021280.3500240.3321350.7265450.7301350.8744990.9422220.1255130.07077460.1746510.7138360.5178980.5086670.02709550.9580090.1099620.3511230.9260090.9521530.7298180.585790.2354820.2471830.1961090.3636250.0476630.1906070.530170.9458460.7500750.2368350.7453860.01866350.9634140.5025140.232607
200.509360.06771060.6463420.5295430.9069770.6809190.8549060.3498260.1085080.1523230.5295540.3751080.4497170.5368420.8316450.8093050.3889690.9246360.5662780.8128930.307830.9237310.004787220.262120.4499920.09989240.6106720.553760.707630.2309760.5244480.6805620.03154080.9574060.6518230.005613590.9030190.6178920.08534250.533470.828330.8540560.6337940.3394360.2916640.7509130.3458430.2430370.1850550.03804780.1845340.2618170.19940.3235320.950450.6324340.5661060.8740690.4996070.05218060.5286360.5264790.1348580.8793430.8802080.9531520.6195330.5540130.321160.4025390.2301320.9143990.8496610.7060320.9990660.7095930.8064770.5793690.2375760.8724210.9177550.2382830.6248680.6708130.08923210.1007870.5287990.5634960.4221230.2357260.744823
210.3071340.930390.5479910.2827630.4944570.3182090.6697730.8537210.8500050.7158160.03376880.8044020.8939780.8939040.3126270.6691110.991440.9471550.6398490.4836490.3169670.4712220.1781880.05389180.06733250.8196590.2130870.9024790.1467890.9569680.4376380.153990.5516590.1888140.5842190.258590.4978280.9290910.6294460.4260620.3533920.1111760.3701210.69480.7057440.1998770.3759270.3062540.01727980.3266790.06772360.7745190.04559850.3535740.1879170.6231970.2084240.4038220.8401840.2224610.08814650.9314780.8531110.3971110.355870.4322340.06614840.5397280.6569490.5241790.9888850.4506970.003640270.2055730.6622580.7371810.9776590.9618690.09083370.5834250.3374150.09227780.3985180.5573030.8660340.8253820.3342650.07750240.6344090.08821480.951536
220.07484940.8428190.1743970.5850270.6475240.3611210.4577830.1971520.2098760.4663290.4061550.1523510.5054830.4564960.2835640.1439570.1164760.860160.646830.2106220.8268850.3004170.712280.9048710.6962290.722670.1741360.230030.7412940.08152470.9792060.7428090.8784330.05259330.9501890.01908110.9339980.7706850.860520.8656650.2974310.7953590.6450380.7120730.6342810.7428850.9618490.8859250.2483040.4538570.9973850.3839370.5474390.7817810.7120370.3482590.0818330.389830.2227690.7863520.118260.9953670.4144370.314920.4957090.6178160.1397650.1671340.9098150.9784090.5596530.2643590.3104320.8573750.7145640.5547750.7071060.08683330.374760.4050640.9346880.2101750.3153030.104530.7096950.2505760.9886240.2216990.2513870.7368910.821235
230.9102480.9745730.2621190.9727540.8310860.8846340.4392250.3852930.8535310.6395630.8555350.3331580.5975350.001159760.1245960.3015870.1433480.4889190.23880.588540.2673870.3802350.6749240.5188060.7595860.7566480.4875460.4356870.02245610.07929660.527140.7118050.3784140.5198930.7132930.2906390.5729890.03237440.3327280.4325080.9639210.734760.4611870.7972650.9071930.9226930.5347320.3034270.2536010.2216670.8884250.1574420.684880.4075560.3622090.9388020.83890.02557320.5612580.4997920.8156920.4083090.008510130.2494990.7097970.5519490.9726550.1581320.2156690.2879930.6847050.9763390.4722910.6291540.5159390.2375660.03240530.2197530.5848380.5965250.7002290.1707920.5876670.2233310.8102880.2804520.2812140.9685380.6257830.92650.987795
240.2566160.8106930.0497290.691820.9603880.9711990.3541850.5536950.9151140.534370.4833890.4204190.9313580.8463670.08334730.8825110.08893440.1054410.8980720.6182680.3226210.9358540.5130550.5783020.5565420.6354140.9200860.3138860.0775840.4106610.5367990.8427270.3234240.09797030.6438130.7397610.3673180.4986120.03497030.2898250.5050650.6226010.2387810.8004930.8342350.7077480.2546950.552480.9003820.05168160.07226620.6700370.5281750.8384060.4186620.2662910.5816130.6104460.8413070.6731560.7058770.8463450.80710.4843620.002642640.3768610.002862580.8136440.06019340.4011460.4559010.4120680.2058920.6929380.7615140.6082910.1659130.705640.4569880.7523190.7628040.5522920.5961550.3069260.4071840.7455720.03128730.528410.9187590.6894520.14905
" ], "text/latex": [ - "\\begin{tabular}{r|cccccccc}\n", - "\t& x1 & x2 & x3 & x4 & x5 & x6 & x7 & \\\\\n", + "\\begin{tabular}{r|cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc}\n", + "\t& x1 & x2 & x3 & x4 & x5 & x6 & x7 & x8 & x9 & x10 & x11 & x12 & x13 & x14 & x15 & x16 & x17 & x18 & x19 & x20 & x21 & x22 & x23 & x24 & x25 & x26 & x27 & x28 & x29 & x30 & x31 & x32 & x33 & x34 & x35 & x36 & x37 & x38 & x39 & x40 & x41 & x42 & x43 & x44 & x45 & x46 & x47 & x48 & x49 & x50 & x51 & x52 & x53 & x54 & x55 & x56 & x57 & x58 & x59 & x60 & x61 & x62 & x63 & x64 & x65 & x66 & x67 & x68 & x69 & x70 & x71 & x72 & x73 & x74 & x75 & x76 & x77 & x78 & x79 & x80 & x81 & x82 & x83 & x84 & x85 & x86 & x87 & x88 & x89 & x90 & x91 & \\\\\n", "\t\\hline\n", - "\t& Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & \\\\\n", + "\t& Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & \\\\\n", "\t\\hline\n", - "\t1 & 0.469427 & 0.893605 & 0.348301 & 0.189853 & 0.602694 & 0.427064 & 0.120058 & $\\dots$ \\\\\n", - "\t2 & 0.774187 & 0.356867 & 0.885526 & 0.11275 & 0.780669 & 0.593082 & 0.939199 & $\\dots$ \\\\\n", - "\t3 & 0.609714 & 0.288531 & 0.355283 & 0.480804 & 0.593935 & 0.893138 & 0.99899 & $\\dots$ \\\\\n", - "\t4 & 0.694783 & 0.570324 & 0.0789985 & 0.818004 & 0.554942 & 0.0996372 & 0.861696 & $\\dots$ \\\\\n", - "\t5 & 0.791302 & 0.905282 & 0.117797 & 0.406855 & 0.681548 & 0.819496 & 0.0545339 & $\\dots$ \\\\\n", - "\t6 & 0.0740549 & 0.679826 & 0.168822 & 0.518838 & 0.335502 & 0.565356 & 0.819869 & $\\dots$ \\\\\n", - "\t7 & 0.621834 & 0.759774 & 0.562538 & 0.560436 & 0.269123 & 0.340253 & 0.532622 & $\\dots$ \\\\\n", - "\t8 & 0.1039 & 0.919697 & 0.418945 & 0.813356 & 0.716439 & 0.545716 & 0.783745 & $\\dots$ \\\\\n", - "\t9 & 0.954089 & 0.808411 & 0.0782112 & 0.154967 & 0.730512 & 0.57385 & 0.0323516 & $\\dots$ \\\\\n", - "\t10 & 0.484041 & 0.0670306 & 0.568193 & 0.236212 & 0.648555 & 0.282126 & 0.819354 & $\\dots$ \\\\\n", - "\t11 & 0.610301 & 0.553308 & 0.464705 & 0.2572 & 0.327319 & 0.928381 & 0.677589 & $\\dots$ \\\\\n", - "\t12 & 0.671759 & 0.0358856 & 0.662134 & 0.52969 & 0.199269 & 0.884487 & 0.724972 & $\\dots$ \\\\\n", - "\t13 & 0.91624 & 0.985905 & 0.430527 & 0.582321 & 0.635674 & 0.514479 & 0.398271 & $\\dots$ \\\\\n", - "\t14 & 0.598099 & 0.073587 & 0.811309 & 0.464078 & 0.043888 & 0.449827 & 0.823583 & $\\dots$ \\\\\n", - "\t15 & 0.108107 & 0.993988 & 0.474159 & 0.553098 & 0.86545 & 0.796407 & 0.58157 & $\\dots$ \\\\\n", - "\t16 & 0.877811 & 0.234663 & 0.780657 & 0.426909 & 0.572277 & 0.217617 & 0.0395133 & $\\dots$ \\\\\n", - "\t17 & 0.888415 & 0.28329 & 0.695983 & 0.447424 & 0.0684627 & 0.427942 & 0.117392 & $\\dots$ \\\\\n", - "\t18 & 0.475098 & 0.708805 & 0.000950559 & 0.620568 & 0.788072 & 0.983017 & 0.487377 & $\\dots$ \\\\\n", - "\t19 & 0.569646 & 0.530991 & 0.414847 & 0.575629 & 0.735323 & 0.870151 & 0.639259 & $\\dots$ \\\\\n", - "\t20 & 0.282279 & 0.686557 & 0.759713 & 0.442214 & 0.878599 & 0.771261 & 0.962957 & $\\dots$ \\\\\n", - "\t21 & 0.621119 & 0.277282 & 0.659875 & 0.770778 & 0.0339144 & 0.901382 & 0.614408 & $\\dots$ \\\\\n", - "\t22 & 0.00578011 & 0.490124 & 0.158736 & 0.0548638 & 0.547278 & 0.334688 & 0.645415 & $\\dots$ \\\\\n", - "\t23 & 0.336331 & 0.833446 & 0.990959 & 0.819531 & 0.744571 & 0.894532 & 0.259292 & $\\dots$ \\\\\n", - "\t24 & 0.818868 & 0.122261 & 0.449699 & 0.997103 & 0.991652 & 0.0650257 & 0.985957 & $\\dots$ \\\\\n", - "\t25 & 0.751488 & 0.0348871 & 0.442447 & 0.811686 & 0.617123 & 0.600312 & 0.0492889 & $\\dots$ \\\\\n", - "\t26 & 0.289911 & 0.468436 & 0.296111 & 0.309392 & 0.639848 & 0.228368 & 0.197872 & $\\dots$ \\\\\n", - "\t27 & 0.246239 & 0.137146 & 0.219654 & 0.631327 & 0.151176 & 0.247654 & 0.591798 & $\\dots$ \\\\\n", - "\t28 & 0.551238 & 0.785143 & 0.383137 & 0.160481 & 0.575538 & 0.212515 & 0.132044 & $\\dots$ \\\\\n", - "\t29 & 0.00790199 & 0.243278 & 0.296137 & 0.950761 & 0.507507 & 0.895889 & 0.582313 & $\\dots$ \\\\\n", - "\t30 & 0.648146 & 0.721099 & 0.987836 & 0.804139 & 0.0243184 & 0.460729 & 0.726689 & $\\dots$ \\\\\n", - "\t$\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & \\\\\n", + "\t1 & 0.691238 & 0.502941 & 0.113297 & 0.328738 & 0.13378 & 0.441278 & 0.685002 & 0.0538219 & 0.0761798 & 0.769235 & 0.284291 & 0.171352 & 0.754563 & 0.648736 & 0.0953225 & 0.775889 & 0.841043 & 0.311933 & 0.56814 & 0.577725 & 0.192599 & 0.00604097 & 0.581288 & 0.746245 & 0.385509 & 0.355455 & 0.929221 & 0.729291 & 0.778783 & 0.598102 & 0.498373 & 0.0278266 & 0.0462616 & 0.0804585 & 0.486005 & 0.829665 & 0.605489 & 0.922619 & 0.615983 & 0.975146 & 0.218467 & 0.214458 & 0.201525 & 0.388645 & 0.558404 & 0.163782 & 0.437683 & 0.897702 & 0.0696074 & 0.656873 & 0.096646 & 0.604482 & 0.826148 & 0.90222 & 0.213158 & 0.145633 & 0.715524 & 0.821202 & 0.851274 & 0.809465 & 0.938894 & 0.833493 & 0.0128205 & 0.911447 & 0.572925 & 0.492402 & 0.70685 & 0.391735 & 0.379956 & 0.894197 & 0.319608 & 0.282724 & 0.662529 & 0.751371 & 0.0515758 & 0.0554555 & 0.407253 & 0.714758 & 0.930454 & 0.34133 & 0.409226 & 0.0593862 & 0.943453 & 0.396289 & 0.611359 & 0.630375 & 0.0122984 & 0.948587 & 0.395367 & 0.912241 & 0.192444 & $\\dots$ \\\\\n", + "\t2 & 0.815357 & 0.7703 & 0.239176 & 0.275748 & 0.183924 & 0.507341 & 0.284418 & 0.28708 & 0.942902 & 0.0887963 & 0.734511 & 0.379075 & 0.434635 & 0.474651 & 0.280465 & 0.180545 & 0.997093 & 0.58534 & 0.404039 & 0.0574775 & 0.829238 & 0.551627 & 0.0609086 & 0.866673 & 0.00203838 & 0.23122 & 0.100199 & 0.542427 & 0.6176 & 0.210846 & 0.169462 & 0.317331 & 0.120702 & 0.522714 & 0.771854 & 0.861075 & 0.607028 & 0.577105 & 0.0263973 & 0.508519 & 0.207115 & 0.260203 & 0.966495 & 0.950563 & 0.23515 & 0.807233 & 0.667959 & 0.469412 & 0.68944 & 0.303178 & 0.916198 & 0.175827 & 0.630586 & 0.617525 & 0.436164 & 0.30317 & 0.0596742 & 0.0982103 & 0.094269 & 0.774918 & 0.74536 & 0.45168 & 0.0928307 & 0.314255 & 0.837564 & 0.507878 & 0.633839 & 0.298748 & 0.501813 & 0.667421 & 0.244102 & 0.99187 & 0.320146 & 0.327764 & 0.0972044 & 0.865251 & 0.370263 & 0.207617 & 0.490622 & 0.128018 & 0.973084 & 0.769352 & 0.780947 & 0.258148 & 0.812933 & 0.83484 & 0.432996 & 0.511692 & 0.611335 & 0.877168 & 0.742428 & $\\dots$ \\\\\n", + "\t3 & 0.816104 & 0.0311551 & 0.5683 & 0.704495 & 0.549385 & 0.471999 & 0.543525 & 0.878611 & 0.0553813 & 0.433413 & 0.721113 & 0.90562 & 0.822592 & 0.101155 & 0.215981 & 0.0727627 & 0.579711 & 0.579151 & 0.755325 & 0.632599 & 0.676199 & 0.921829 & 0.749605 & 0.981136 & 0.10249 & 0.953556 & 0.50945 & 0.646269 & 0.396988 & 0.932969 & 0.506011 & 0.387092 & 0.513568 & 0.548799 & 0.117301 & 0.749199 & 0.161664 & 0.507067 & 0.982289 & 0.0554118 & 0.0723973 & 0.296174 & 0.2617 & 0.0464874 & 0.0168145 & 0.938944 & 0.731108 & 0.464276 & 0.0282041 & 0.112549 & 0.745749 & 0.432314 & 0.693835 & 0.956663 & 0.177674 & 0.874948 & 0.587931 & 0.834267 & 0.751571 & 0.871607 & 0.118688 & 0.895995 & 0.688151 & 0.931742 & 0.0470647 & 0.356565 & 0.648014 & 0.314232 & 0.90112 & 0.837802 & 0.419339 & 0.126734 & 0.00268467 & 0.843003 & 0.505144 & 0.5602 & 0.0985052 & 0.861954 & 0.860644 & 0.204682 & 0.634035 & 0.553771 & 0.220832 & 0.416234 & 0.900075 & 0.095238 & 0.323409 & 0.461687 & 0.099201 & 0.043433 & 0.690487 & $\\dots$ \\\\\n", + "\t4 & 0.0294096 & 0.602984 & 0.357492 & 0.588966 & 0.100176 & 0.163219 & 0.3719 & 0.0634015 & 0.57308 & 0.795895 & 0.89425 & 0.0849626 & 0.763744 & 0.239118 & 0.722183 & 0.856142 & 0.180864 & 0.581203 & 0.3304 & 0.520827 & 0.0140902 & 0.402648 & 0.492288 & 0.0419267 & 0.565855 & 0.185707 & 0.912092 & 0.276022 & 0.687733 & 0.152818 & 0.596199 & 0.246881 & 0.624406 & 0.86924 & 0.60933 & 0.662877 & 0.97319 & 0.112181 & 0.417401 & 0.384564 & 0.824204 & 0.936204 & 0.710395 & 0.962075 & 0.429801 & 0.781552 & 0.110724 & 0.238736 & 0.239962 & 0.805589 & 0.45364 & 0.827796 & 0.0670384 & 0.651466 & 0.136 & 0.596721 & 0.0877139 & 0.147265 & 0.621543 & 0.185766 & 0.935794 & 0.940496 & 0.041551 & 0.380434 & 0.804594 & 0.463235 & 0.614597 & 0.995259 & 0.853942 & 0.909778 & 0.677835 & 0.136624 & 0.0101655 & 0.313183 & 0.793315 & 0.640075 & 0.802004 & 0.355651 & 0.797319 & 0.811142 & 0.8665 & 0.440861 & 0.110327 & 0.591043 & 0.382544 & 0.345257 & 0.506768 & 0.344783 & 0.0190208 & 0.371157 & 0.885855 & $\\dots$ \\\\\n", + "\t5 & 0.735294 & 0.518496 & 0.867751 & 0.944726 & 0.304592 & 0.341913 & 0.681918 & 0.0712981 & 0.999297 & 0.8393 & 0.949566 & 0.461614 & 0.249693 & 0.5351 & 0.908043 & 0.197059 & 0.688323 & 0.200507 & 0.0450562 & 0.70558 & 0.770484 & 0.0854422 & 0.843648 & 0.641052 & 0.408662 & 0.479613 & 0.47507 & 0.826897 & 0.168435 & 0.433382 & 0.502158 & 0.274056 & 0.61335 & 0.89971 & 0.717724 & 0.94818 & 0.375389 & 0.953553 & 0.455064 & 0.483564 & 0.0675189 & 0.274972 & 0.0285296 & 0.683966 & 0.192759 & 0.263576 & 0.531961 & 0.227704 & 0.102302 & 0.786472 & 0.028373 & 0.0335419 & 0.90208 & 0.493996 & 0.860681 & 0.513063 & 0.0637473 & 0.185034 & 0.940987 & 0.029071 & 0.715109 & 0.199015 & 0.430876 & 0.038609 & 0.843466 & 0.554907 & 0.130222 & 0.25381 & 0.927273 & 0.7202 & 0.45438 & 0.968065 & 0.244117 & 0.964951 & 0.59948 & 0.0335906 & 0.0874323 & 0.919734 & 0.57089 & 0.541353 & 0.743658 & 0.953108 & 0.601884 & 0.170292 & 0.790372 & 0.0300106 & 0.650849 & 0.691083 & 0.672981 & 0.211433 & 0.31572 & $\\dots$ \\\\\n", + "\t6 & 0.104985 & 0.748484 & 0.270928 & 0.726806 & 0.242353 & 0.424651 & 0.89167 & 0.0989472 & 0.63658 & 0.451663 & 0.58207 & 0.37181 & 0.784128 & 0.881445 & 0.522263 & 0.843995 & 0.647146 & 0.510528 & 0.760864 & 0.176008 & 0.604682 & 0.529928 & 0.868341 & 0.956101 & 0.636343 & 0.346888 & 0.383413 & 0.124892 & 0.137329 & 0.953385 & 0.019473 & 0.918218 & 0.217521 & 0.454126 & 0.216184 & 0.128865 & 0.71009 & 0.202403 & 0.786343 & 0.376344 & 0.876184 & 0.173444 & 0.543272 & 0.569241 & 0.217485 & 0.54297 & 0.794895 & 0.197436 & 0.405965 & 0.218483 & 0.621621 & 0.588901 & 0.55798 & 0.758998 & 0.0190227 & 0.0141301 & 0.262226 & 0.526782 & 0.897284 & 0.160378 & 0.882961 & 0.908824 & 0.288973 & 0.995771 & 0.217869 & 0.155613 & 0.14274 & 0.398137 & 0.715217 & 0.671268 & 0.309147 & 0.0980875 & 0.0506852 & 0.705388 & 0.856581 & 0.490066 & 0.868483 & 0.923126 & 0.134035 & 0.0515882 & 0.745122 & 0.967005 & 0.56791 & 0.478049 & 0.0906394 & 0.124289 & 0.333455 & 0.133029 & 0.785799 & 0.00307311 & 0.0231871 & $\\dots$ \\\\\n", + "\t7 & 0.122963 & 0.299071 & 0.398845 & 0.595742 & 0.897918 & 0.767277 & 0.528869 & 0.0952854 & 0.876014 & 0.91985 & 0.274228 & 0.235176 & 0.155168 & 0.897107 & 0.844195 & 0.523281 & 0.695864 & 0.151124 & 0.201065 & 0.433001 & 0.967306 & 0.277211 & 0.0633977 & 0.559057 & 0.803475 & 0.955828 & 0.418065 & 0.176816 & 0.452077 & 0.212605 & 0.359162 & 0.872456 & 0.954056 & 0.00969582 & 0.654253 & 0.451168 & 0.936156 & 0.83678 & 0.352908 & 0.355679 & 0.351366 & 0.6976 & 0.182677 & 0.582376 & 0.446669 & 0.468831 & 0.986564 & 0.787202 & 0.0207218 & 0.830462 & 0.528791 & 0.649264 & 0.462557 & 0.495886 & 0.331946 & 0.207492 & 0.147196 & 0.413481 & 0.384668 & 0.289411 & 0.671321 & 0.0849257 & 0.822076 & 0.691735 & 0.00201329 & 0.986001 & 0.255116 & 0.62795 & 0.439429 & 0.855033 & 0.0392876 & 0.533968 & 0.954528 & 0.621568 & 0.554224 & 0.245084 & 0.430127 & 0.0393655 & 0.861053 & 0.79146 & 0.19431 & 0.130647 & 0.320469 & 0.79884 & 0.508452 & 0.615816 & 0.620154 & 0.59971 & 0.95422 & 0.175857 & 0.0561981 & $\\dots$ \\\\\n", + "\t8 & 0.285565 & 0.860297 & 0.761779 & 0.493953 & 0.352795 & 0.0978239 & 0.33335 & 0.271201 & 0.925524 & 0.917375 & 0.576162 & 0.268133 & 0.125511 & 0.490454 & 0.344244 & 0.701716 & 0.974315 & 0.627148 & 0.719798 & 0.897083 & 0.355013 & 0.525964 & 0.1293 & 0.469946 & 0.220079 & 0.363505 & 0.511436 & 0.121252 & 0.22358 & 0.913205 & 0.00264764 & 0.68959 & 0.780974 & 0.0783856 & 0.796506 & 0.110054 & 0.368587 & 0.193997 & 0.29098 & 0.868428 & 0.786319 & 0.545261 & 0.919114 & 0.76211 & 0.999873 & 0.357683 & 0.432689 & 0.663905 & 0.100488 & 0.951057 & 0.516271 & 0.483088 & 0.94885 & 0.202503 & 0.303644 & 0.891888 & 0.795852 & 0.607904 & 0.85376 & 0.103206 & 0.714224 & 0.646276 & 0.320943 & 0.0962626 & 0.251722 & 0.732607 & 0.793814 & 0.72889 & 0.432618 & 0.425725 & 0.509217 & 0.0901841 & 0.0428452 & 0.662801 & 0.20999 & 0.78545 & 0.417713 & 0.587398 & 0.29783 & 0.443977 & 0.657121 & 0.614854 & 0.171036 & 0.333022 & 0.600891 & 0.690445 & 0.711591 & 0.353383 & 0.872337 & 0.56693 & 0.650327 & $\\dots$ \\\\\n", + "\t9 & 0.699475 & 0.526547 & 0.48827 & 0.833843 & 0.398902 & 0.34097 & 0.434416 & 0.737417 & 0.601661 & 0.948748 & 0.143168 & 0.39857 & 0.274069 & 0.441589 & 0.907523 & 0.776778 & 0.0880758 & 0.563284 & 0.035741 & 0.965501 & 0.158115 & 0.935467 & 0.0107191 & 0.794095 & 0.306485 & 0.563838 & 0.234564 & 0.470866 & 0.545337 & 0.882925 & 0.652653 & 0.484142 & 0.0444346 & 0.926649 & 0.0893685 & 0.149006 & 0.196885 & 0.902177 & 0.234035 & 0.518022 & 0.0508096 & 0.734057 & 0.71099 & 0.587393 & 0.899463 & 0.145148 & 0.130772 & 0.618149 & 0.231209 & 0.546901 & 0.536324 & 0.381786 & 0.110766 & 0.535949 & 0.188301 & 0.523542 & 0.609068 & 0.691422 & 0.785489 & 0.2771 & 0.198504 & 0.149313 & 0.283498 & 0.0928673 & 0.455494 & 0.017388 & 0.633155 & 0.669383 & 0.573861 & 0.747748 & 0.855555 & 0.859311 & 0.343575 & 0.326334 & 0.704096 & 0.752342 & 0.644027 & 0.0584409 & 0.374489 & 0.468853 & 0.301344 & 0.859881 & 0.353032 & 0.364108 & 0.712382 & 0.0796823 & 0.639522 & 0.799812 & 0.765472 & 0.449926 & 0.00834814 & $\\dots$ \\\\\n", + "\t10 & 0.166966 & 0.39248 & 0.927411 & 0.375408 & 0.948402 & 0.74614 & 0.165905 & 0.60924 & 0.658242 & 0.405263 & 0.250541 & 0.250369 & 0.528383 & 0.882483 & 0.669635 & 0.468719 & 0.211685 & 0.571305 & 0.941935 & 0.0399602 & 0.949572 & 0.884902 & 0.874846 & 0.935472 & 0.753027 & 0.222745 & 0.072964 & 0.446266 & 0.665754 & 0.494479 & 0.594426 & 0.22792 & 0.304495 & 0.32287 & 0.846079 & 0.635526 & 0.176167 & 0.335138 & 0.528078 & 0.744476 & 0.369796 & 0.541871 & 0.638983 & 0.512564 & 0.278364 & 0.379862 & 0.981846 & 0.310789 & 0.92563 & 0.345531 & 0.0565916 & 0.0972791 & 0.357956 & 0.979057 & 0.987561 & 0.80529 & 0.467411 & 0.329724 & 0.897648 & 0.860602 & 0.149986 & 0.480947 & 0.835866 & 0.561121 & 0.128314 & 0.962059 & 0.10865 & 0.0481761 & 0.842291 & 0.557756 & 0.290992 & 0.72197 & 0.215849 & 0.784464 & 0.480755 & 0.325451 & 0.00124807 & 0.255167 & 0.651753 & 0.861789 & 0.654518 & 0.395987 & 0.686211 & 0.201202 & 0.807569 & 0.966599 & 0.858589 & 0.0542331 & 0.803382 & 0.153509 & 0.349456 & $\\dots$ \\\\\n", + "\t11 & 0.416885 & 0.786112 & 0.892138 & 0.603528 & 0.400857 & 0.488044 & 0.805061 & 0.815509 & 0.949073 & 0.0997092 & 0.689906 & 0.471251 & 0.0254083 & 0.939511 & 0.0381978 & 0.87884 & 0.299637 & 0.999647 & 0.309296 & 0.0201042 & 0.514313 & 0.556854 & 0.213665 & 0.125529 & 0.644093 & 0.776143 & 0.428217 & 0.410361 & 0.31759 & 0.187317 & 0.271677 & 0.433429 & 0.0915086 & 0.690614 & 0.304914 & 0.614119 & 0.017071 & 0.432537 & 0.241412 & 0.571407 & 0.706505 & 0.053553 & 0.229129 & 0.410833 & 0.300025 & 0.366573 & 0.50443 & 0.815611 & 0.407297 & 0.0882654 & 0.221459 & 0.947458 & 0.161545 & 0.908259 & 0.491513 & 0.212744 & 0.0616568 & 0.645213 & 0.454906 & 0.37159 & 0.149114 & 0.193823 & 0.508172 & 0.0199597 & 0.120865 & 0.145493 & 0.0798437 & 0.280795 & 0.329265 & 0.475399 & 0.340869 & 0.895608 & 0.563804 & 0.258064 & 0.121789 & 0.921411 & 0.0950939 & 0.580073 & 0.758349 & 0.625454 & 0.752884 & 0.802718 & 0.920175 & 0.717342 & 0.719859 & 0.424176 & 0.837297 & 0.470277 & 0.980379 & 0.757167 & 0.152447 & $\\dots$ \\\\\n", + "\t12 & 0.754568 & 0.252141 & 0.125841 & 0.743868 & 0.322289 & 0.248748 & 0.233131 & 0.901151 & 0.541749 & 0.451507 & 0.743821 & 0.115309 & 0.0533659 & 0.224579 & 0.427137 & 0.732949 & 0.0139583 & 0.518952 & 0.524448 & 0.708239 & 0.680834 & 0.503947 & 0.297688 & 0.758444 & 0.155056 & 0.725885 & 0.560022 & 0.878697 & 0.788712 & 0.0911159 & 0.351682 & 0.15456 & 0.16106 & 0.938585 & 0.512901 & 0.667643 & 0.154321 & 0.948208 & 0.685353 & 0.400909 & 0.235272 & 0.137961 & 0.634572 & 0.305139 & 0.468947 & 0.783277 & 0.160702 & 0.801933 & 0.270504 & 0.54568 & 0.740096 & 0.453297 & 0.479879 & 0.445893 & 0.553824 & 0.624774 & 0.387326 & 0.522014 & 0.425619 & 0.728292 & 0.566535 & 0.823266 & 0.188184 & 0.954409 & 0.692347 & 0.723116 & 0.334068 & 0.156718 & 0.050776 & 0.649684 & 0.523817 & 0.951366 & 0.981999 & 0.131595 & 0.63162 & 0.0457824 & 0.788564 & 0.838033 & 0.610428 & 0.849241 & 0.14634 & 0.400393 & 0.629283 & 0.704738 & 0.11485 & 0.202387 & 0.0125521 & 0.0500447 & 0.952813 & 0.103388 & 0.916409 & $\\dots$ \\\\\n", + "\t13 & 0.359805 & 0.70869 & 0.180921 & 0.318276 & 0.696253 & 0.780391 & 0.395035 & 0.494216 & 0.816286 & 0.928157 & 0.0477657 & 0.673665 & 0.809989 & 0.160694 & 0.0990286 & 0.627871 & 0.501307 & 0.460785 & 0.414588 & 0.911045 & 0.103021 & 0.654851 & 0.588015 & 0.816675 & 0.229959 & 0.996814 & 0.390815 & 0.289545 & 0.69559 & 0.747203 & 0.676633 & 0.887763 & 0.00891286 & 0.530944 & 0.541194 & 0.354979 & 0.953086 & 0.148502 & 0.560864 & 0.475162 & 0.969971 & 0.00743405 & 0.11161 & 0.704805 & 0.205323 & 0.545716 & 0.756746 & 0.494702 & 0.725381 & 0.68307 & 0.368649 & 0.815366 & 0.744184 & 0.416854 & 0.113417 & 0.0161777 & 0.237871 & 0.328869 & 0.388594 & 0.827495 & 0.525308 & 0.673568 & 0.0787224 & 0.146568 & 0.485066 & 0.877684 & 0.416192 & 0.571045 & 0.182155 & 0.134323 & 0.150976 & 0.742043 & 0.331399 & 0.441721 & 0.258435 & 0.179365 & 0.547326 & 0.0396702 & 0.901111 & 0.875182 & 0.0940496 & 0.135748 & 0.815906 & 0.318638 & 0.467641 & 0.350695 & 0.438721 & 0.0306896 & 0.826348 & 0.188778 & 0.778235 & $\\dots$ \\\\\n", + "\t14 & 0.256697 & 0.442184 & 0.882668 & 0.295139 & 0.661251 & 0.345927 & 0.00618738 & 0.839614 & 0.126678 & 0.367896 & 0.905565 & 0.992191 & 0.814239 & 0.891956 & 0.945523 & 0.105662 & 0.144674 & 0.742911 & 0.0199684 & 0.600905 & 0.938825 & 0.637899 & 0.574996 & 0.959144 & 0.289137 & 0.05706 & 0.534704 & 0.859948 & 0.792136 & 0.699435 & 0.452928 & 0.00628875 & 0.646328 & 0.00625986 & 0.0948943 & 0.509564 & 0.831057 & 0.150589 & 0.99755 & 0.825637 & 0.359116 & 0.25917 & 0.184987 & 0.246293 & 0.678959 & 0.246704 & 0.262669 & 0.673208 & 0.312037 & 0.32152 & 0.568042 & 0.0513086 & 0.404207 & 0.882484 & 0.544177 & 0.857876 & 0.537279 & 0.120186 & 0.0197411 & 0.134976 & 0.490367 & 0.915333 & 0.267332 & 0.608344 & 0.702321 & 0.818114 & 0.128523 & 0.923254 & 0.198797 & 0.36647 & 0.690348 & 0.441621 & 0.0754382 & 0.827973 & 0.287905 & 0.151659 & 0.908283 & 0.622234 & 0.924394 & 0.437373 & 0.249388 & 0.343454 & 0.0902369 & 0.95358 & 0.5275 & 0.490004 & 0.448121 & 0.434673 & 0.703803 & 0.398894 & 0.106829 & $\\dots$ \\\\\n", + "\t15 & 0.785111 & 0.0287701 & 0.723653 & 0.420017 & 0.369392 & 0.12533 & 0.613561 & 0.353583 & 0.0484257 & 0.48146 & 0.00590497 & 0.403021 & 0.928766 & 0.936654 & 0.0148183 & 0.541617 & 0.0887707 & 0.65463 & 0.112795 & 0.819853 & 0.153062 & 0.753844 & 0.157142 & 0.801286 & 0.579688 & 0.0908388 & 0.356038 & 0.744643 & 0.250392 & 0.908347 & 0.723184 & 0.680819 & 0.255666 & 0.582374 & 0.159995 & 0.0551349 & 0.25848 & 0.956404 & 0.106678 & 0.578684 & 0.819128 & 0.835611 & 0.164239 & 0.352778 & 0.260887 & 0.340043 & 0.359265 & 0.753189 & 0.691452 & 0.465358 & 0.294545 & 0.101817 & 0.408753 & 0.197066 & 0.891221 & 0.449196 & 0.353885 & 0.817879 & 0.302634 & 0.781319 & 0.878146 & 0.223373 & 0.341864 & 0.67 & 0.818568 & 0.45743 & 0.0106534 & 0.109349 & 0.755255 & 0.554298 & 0.0187193 & 0.470433 & 0.747251 & 0.883222 & 0.0343146 & 0.0722684 & 0.82199 & 0.213906 & 0.916131 & 0.43422 & 0.686634 & 0.0813054 & 0.515826 & 0.441113 & 0.369452 & 0.468456 & 0.700418 & 0.199584 & 0.790778 & 0.876855 & 0.197238 & $\\dots$ \\\\\n", + "\t16 & 0.119175 & 0.997407 & 0.600071 & 0.150134 & 0.294867 & 0.232884 & 0.0359352 & 0.0405297 & 0.956944 & 0.206612 & 0.891109 & 0.536923 & 0.444805 & 0.0592091 & 0.349784 & 0.041129 & 0.204062 & 0.356162 & 0.427058 & 0.436655 & 0.323965 & 0.405204 & 0.243517 & 0.0983356 & 0.707926 & 0.626772 & 0.397375 & 0.103048 & 0.493754 & 0.0512734 & 0.284098 & 0.905525 & 0.2557 & 0.492156 & 0.217349 & 0.72758 & 0.45774 & 0.757575 & 0.504359 & 0.111195 & 0.144946 & 0.63563 & 0.640765 & 0.473529 & 0.888842 & 0.0662461 & 0.0669501 & 0.0937819 & 0.284774 & 0.388454 & 0.315083 & 0.705965 & 0.110245 & 0.545334 & 0.328949 & 0.953212 & 0.869523 & 0.883671 & 0.789061 & 0.538512 & 0.17662 & 0.679105 & 0.756235 & 0.700965 & 0.714096 & 0.773286 & 0.838677 & 0.194138 & 0.189236 & 0.801607 & 0.928073 & 0.21181 & 0.59794 & 0.939369 & 0.6301 & 0.428423 & 0.400726 & 0.392068 & 0.276225 & 0.647371 & 0.204536 & 0.803716 & 0.756323 & 0.630274 & 0.981307 & 0.669312 & 0.731045 & 0.686936 & 0.830185 & 0.225691 & 0.718969 & $\\dots$ \\\\\n", + "\t17 & 0.767517 & 0.0917449 & 0.98261 & 0.155235 & 0.779822 & 0.697622 & 0.276395 & 0.0334867 & 0.211488 & 0.656095 & 0.271849 & 0.921427 & 0.704899 & 0.125585 & 0.677568 & 0.297045 & 0.438671 & 0.141978 & 0.197653 & 0.14572 & 0.901121 & 0.826308 & 0.254755 & 0.963487 & 0.69993 & 0.799628 & 0.384087 & 0.694298 & 0.505828 & 0.325642 & 0.518123 & 0.386466 & 0.86465 & 0.72836 & 0.282926 & 0.6356 & 0.24907 & 0.705237 & 0.185539 & 0.739488 & 0.316557 & 0.990732 & 0.291909 & 0.919134 & 0.609385 & 0.741514 & 0.100009 & 0.535735 & 0.198862 & 0.882838 & 0.497125 & 0.995807 & 0.0103457 & 0.820863 & 0.626746 & 0.296194 & 0.96574 & 0.655598 & 0.436826 & 0.163791 & 0.659449 & 0.36553 & 0.82149 & 0.976503 & 0.88755 & 0.125286 & 0.700833 & 0.946964 & 0.0848134 & 0.196714 & 0.937769 & 0.652907 & 0.619412 & 0.722275 & 0.566419 & 0.137032 & 0.421072 & 0.883118 & 0.076193 & 0.924065 & 0.742058 & 0.695228 & 0.692421 & 0.814906 & 0.0784302 & 0.395074 & 0.0195594 & 0.0644042 & 0.192134 & 0.226081 & 0.305123 & $\\dots$ \\\\\n", + "\t18 & 0.0912103 & 0.858123 & 0.523157 & 0.341457 & 0.0188369 & 0.654098 & 0.713415 & 0.129512 & 0.111948 & 0.459208 & 0.183655 & 0.920433 & 0.997478 & 0.650843 & 0.0416978 & 0.983741 & 0.0409416 & 0.681168 & 0.652302 & 0.380478 & 0.182672 & 0.48964 & 0.183932 & 0.779065 & 0.531586 & 0.731207 & 0.546016 & 0.209642 & 0.388015 & 0.707885 & 0.401469 & 0.414996 & 0.34144 & 0.123668 & 0.97512 & 0.600568 & 0.840934 & 0.0844493 & 0.83362 & 0.0164664 & 0.643974 & 0.370158 & 0.36341 & 0.49419 & 0.134667 & 0.111654 & 0.0603724 & 0.0192727 & 0.817629 & 0.337511 & 0.282739 & 0.0427535 & 0.428996 & 0.991509 & 0.699613 & 0.942149 & 0.979018 & 0.774627 & 0.263582 & 0.0343829 & 0.691345 & 0.529715 & 0.3491 & 0.568308 & 0.445266 & 0.860663 & 0.737898 & 0.158701 & 0.0853444 & 0.671737 & 0.778676 & 0.616331 & 0.605166 & 0.137921 & 0.49265 & 0.084879 & 0.490077 & 0.840441 & 0.805008 & 0.577131 & 0.164546 & 0.585887 & 0.712441 & 0.0406718 & 0.813799 & 0.597728 & 0.31394 & 0.493442 & 0.755567 & 0.148272 & 0.780615 & $\\dots$ \\\\\n", + "\t19 & 0.476591 & 0.800718 & 0.11265 & 0.283065 & 0.685996 & 0.948567 & 0.922045 & 0.393786 & 0.235692 & 0.923032 & 0.389098 & 0.305808 & 0.0757194 & 0.643833 & 0.508898 & 0.909184 & 0.289196 & 0.449011 & 0.449166 & 0.2876 & 0.0347074 & 0.44147 & 0.103866 & 0.526855 & 0.983031 & 0.0932253 & 0.537359 & 0.31136 & 0.347529 & 0.379231 & 0.224118 & 0.668162 & 0.128517 & 0.539799 & 0.172349 & 0.435991 & 0.180826 & 0.104718 & 0.932985 & 0.0209317 & 0.286929 & 0.644148 & 0.345779 & 0.723341 & 0.675401 & 0.220316 & 0.0820871 & 0.321589 & 0.693457 & 0.409098 & 0.044919 & 0.982601 & 0.902514 & 0.812016 & 0.530556 & 0.0802128 & 0.350024 & 0.332135 & 0.726545 & 0.730135 & 0.874499 & 0.942222 & 0.125513 & 0.0707746 & 0.174651 & 0.713836 & 0.517898 & 0.508667 & 0.0270955 & 0.958009 & 0.109962 & 0.351123 & 0.926009 & 0.952153 & 0.729818 & 0.58579 & 0.235482 & 0.247183 & 0.196109 & 0.363625 & 0.047663 & 0.190607 & 0.53017 & 0.945846 & 0.750075 & 0.236835 & 0.745386 & 0.0186635 & 0.963414 & 0.502514 & 0.232607 & $\\dots$ \\\\\n", + "\t20 & 0.50936 & 0.0677106 & 0.646342 & 0.529543 & 0.906977 & 0.680919 & 0.854906 & 0.349826 & 0.108508 & 0.152323 & 0.529554 & 0.375108 & 0.449717 & 0.536842 & 0.831645 & 0.809305 & 0.388969 & 0.924636 & 0.566278 & 0.812893 & 0.30783 & 0.923731 & 0.00478722 & 0.26212 & 0.449992 & 0.0998924 & 0.610672 & 0.55376 & 0.70763 & 0.230976 & 0.524448 & 0.680562 & 0.0315408 & 0.957406 & 0.651823 & 0.00561359 & 0.903019 & 0.617892 & 0.0853425 & 0.53347 & 0.82833 & 0.854056 & 0.633794 & 0.339436 & 0.291664 & 0.750913 & 0.345843 & 0.243037 & 0.185055 & 0.0380478 & 0.184534 & 0.261817 & 0.1994 & 0.323532 & 0.95045 & 0.632434 & 0.566106 & 0.874069 & 0.499607 & 0.0521806 & 0.528636 & 0.526479 & 0.134858 & 0.879343 & 0.880208 & 0.953152 & 0.619533 & 0.554013 & 0.32116 & 0.402539 & 0.230132 & 0.914399 & 0.849661 & 0.706032 & 0.999066 & 0.709593 & 0.806477 & 0.579369 & 0.237576 & 0.872421 & 0.917755 & 0.238283 & 0.624868 & 0.670813 & 0.0892321 & 0.100787 & 0.528799 & 0.563496 & 0.422123 & 0.235726 & 0.744823 & $\\dots$ \\\\\n", + "\t21 & 0.307134 & 0.93039 & 0.547991 & 0.282763 & 0.494457 & 0.318209 & 0.669773 & 0.853721 & 0.850005 & 0.715816 & 0.0337688 & 0.804402 & 0.893978 & 0.893904 & 0.312627 & 0.669111 & 0.99144 & 0.947155 & 0.639849 & 0.483649 & 0.316967 & 0.471222 & 0.178188 & 0.0538918 & 0.0673325 & 0.819659 & 0.213087 & 0.902479 & 0.146789 & 0.956968 & 0.437638 & 0.15399 & 0.551659 & 0.188814 & 0.584219 & 0.25859 & 0.497828 & 0.929091 & 0.629446 & 0.426062 & 0.353392 & 0.111176 & 0.370121 & 0.6948 & 0.705744 & 0.199877 & 0.375927 & 0.306254 & 0.0172798 & 0.326679 & 0.0677236 & 0.774519 & 0.0455985 & 0.353574 & 0.187917 & 0.623197 & 0.208424 & 0.403822 & 0.840184 & 0.222461 & 0.0881465 & 0.931478 & 0.853111 & 0.397111 & 0.35587 & 0.432234 & 0.0661484 & 0.539728 & 0.656949 & 0.524179 & 0.988885 & 0.450697 & 0.00364027 & 0.205573 & 0.662258 & 0.737181 & 0.977659 & 0.961869 & 0.0908337 & 0.583425 & 0.337415 & 0.0922778 & 0.398518 & 0.557303 & 0.866034 & 0.825382 & 0.334265 & 0.0775024 & 0.634409 & 0.0882148 & 0.951536 & $\\dots$ \\\\\n", + "\t22 & 0.0748494 & 0.842819 & 0.174397 & 0.585027 & 0.647524 & 0.361121 & 0.457783 & 0.197152 & 0.209876 & 0.466329 & 0.406155 & 0.152351 & 0.505483 & 0.456496 & 0.283564 & 0.143957 & 0.116476 & 0.86016 & 0.64683 & 0.210622 & 0.826885 & 0.300417 & 0.71228 & 0.904871 & 0.696229 & 0.72267 & 0.174136 & 0.23003 & 0.741294 & 0.0815247 & 0.979206 & 0.742809 & 0.878433 & 0.0525933 & 0.950189 & 0.0190811 & 0.933998 & 0.770685 & 0.86052 & 0.865665 & 0.297431 & 0.795359 & 0.645038 & 0.712073 & 0.634281 & 0.742885 & 0.961849 & 0.885925 & 0.248304 & 0.453857 & 0.997385 & 0.383937 & 0.547439 & 0.781781 & 0.712037 & 0.348259 & 0.081833 & 0.38983 & 0.222769 & 0.786352 & 0.11826 & 0.995367 & 0.414437 & 0.31492 & 0.495709 & 0.617816 & 0.139765 & 0.167134 & 0.909815 & 0.978409 & 0.559653 & 0.264359 & 0.310432 & 0.857375 & 0.714564 & 0.554775 & 0.707106 & 0.0868333 & 0.37476 & 0.405064 & 0.934688 & 0.210175 & 0.315303 & 0.10453 & 0.709695 & 0.250576 & 0.988624 & 0.221699 & 0.251387 & 0.736891 & 0.821235 & $\\dots$ \\\\\n", + "\t23 & 0.910248 & 0.974573 & 0.262119 & 0.972754 & 0.831086 & 0.884634 & 0.439225 & 0.385293 & 0.853531 & 0.639563 & 0.855535 & 0.333158 & 0.597535 & 0.00115976 & 0.124596 & 0.301587 & 0.143348 & 0.488919 & 0.2388 & 0.58854 & 0.267387 & 0.380235 & 0.674924 & 0.518806 & 0.759586 & 0.756648 & 0.487546 & 0.435687 & 0.0224561 & 0.0792966 & 0.52714 & 0.711805 & 0.378414 & 0.519893 & 0.713293 & 0.290639 & 0.572989 & 0.0323744 & 0.332728 & 0.432508 & 0.963921 & 0.73476 & 0.461187 & 0.797265 & 0.907193 & 0.922693 & 0.534732 & 0.303427 & 0.253601 & 0.221667 & 0.888425 & 0.157442 & 0.68488 & 0.407556 & 0.362209 & 0.938802 & 0.8389 & 0.0255732 & 0.561258 & 0.499792 & 0.815692 & 0.408309 & 0.00851013 & 0.249499 & 0.709797 & 0.551949 & 0.972655 & 0.158132 & 0.215669 & 0.287993 & 0.684705 & 0.976339 & 0.472291 & 0.629154 & 0.515939 & 0.237566 & 0.0324053 & 0.219753 & 0.584838 & 0.596525 & 0.700229 & 0.170792 & 0.587667 & 0.223331 & 0.810288 & 0.280452 & 0.281214 & 0.968538 & 0.625783 & 0.9265 & 0.987795 & $\\dots$ \\\\\n", + "\t24 & 0.256616 & 0.810693 & 0.049729 & 0.69182 & 0.960388 & 0.971199 & 0.354185 & 0.553695 & 0.915114 & 0.53437 & 0.483389 & 0.420419 & 0.931358 & 0.846367 & 0.0833473 & 0.882511 & 0.0889344 & 0.105441 & 0.898072 & 0.618268 & 0.322621 & 0.935854 & 0.513055 & 0.578302 & 0.556542 & 0.635414 & 0.920086 & 0.313886 & 0.077584 & 0.410661 & 0.536799 & 0.842727 & 0.323424 & 0.0979703 & 0.643813 & 0.739761 & 0.367318 & 0.498612 & 0.0349703 & 0.289825 & 0.505065 & 0.622601 & 0.238781 & 0.800493 & 0.834235 & 0.707748 & 0.254695 & 0.55248 & 0.900382 & 0.0516816 & 0.0722662 & 0.670037 & 0.528175 & 0.838406 & 0.418662 & 0.266291 & 0.581613 & 0.610446 & 0.841307 & 0.673156 & 0.705877 & 0.846345 & 0.8071 & 0.484362 & 0.00264264 & 0.376861 & 0.00286258 & 0.813644 & 0.0601934 & 0.401146 & 0.455901 & 0.412068 & 0.205892 & 0.692938 & 0.761514 & 0.608291 & 0.165913 & 0.70564 & 0.456988 & 0.752319 & 0.762804 & 0.552292 & 0.596155 & 0.306926 & 0.407184 & 0.745572 & 0.0312873 & 0.52841 & 0.918759 & 0.689452 & 0.14905 & $\\dots$ \\\\\n", + "\t$\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & $\\dots$ & \\\\\n", "\\end{tabular}\n" ], "text/plain": [ - "100×1000 DataFrame. Omitted printing of 994 columns\n", - "│ Row │ x1 │ x2 │ x3 │ x4 │ x5 │ x6 │\n", - "│ │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │\n", - "├─────┼───────────┼───────────┼───────────┼────────────┼───────────┼───────────┤\n", - "│ 1 │ 0.469427 │ 0.893605 │ 0.348301 │ 0.189853 │ 0.602694 │ 0.427064 │\n", - "│ 2 │ 0.774187 │ 0.356867 │ 0.885526 │ 0.11275 │ 0.780669 │ 0.593082 │\n", - "│ 3 │ 0.609714 │ 0.288531 │ 0.355283 │ 0.480804 │ 0.593935 │ 0.893138 │\n", - "│ 4 │ 0.694783 │ 0.570324 │ 0.0789985 │ 0.818004 │ 0.554942 │ 0.0996372 │\n", - "│ 5 │ 0.791302 │ 0.905282 │ 0.117797 │ 0.406855 │ 0.681548 │ 0.819496 │\n", - "│ 6 │ 0.0740549 │ 0.679826 │ 0.168822 │ 0.518838 │ 0.335502 │ 0.565356 │\n", - "│ 7 │ 0.621834 │ 0.759774 │ 0.562538 │ 0.560436 │ 0.269123 │ 0.340253 │\n", - "│ 8 │ 0.1039 │ 0.919697 │ 0.418945 │ 0.813356 │ 0.716439 │ 0.545716 │\n", - "│ 9 │ 0.954089 │ 0.808411 │ 0.0782112 │ 0.154967 │ 0.730512 │ 0.57385 │\n", - "│ 10 │ 0.484041 │ 0.0670306 │ 0.568193 │ 0.236212 │ 0.648555 │ 0.282126 │\n", + "100×1000 DataFrame. Omitted printing of 917 columns\n", + "│ Row │ x1 │ x2 │ x3 │ x4 │ x5 │ x6 │ x7 │ x8 │ x9 │ x10 │ x11 │ x12 │ x13 │ x14 │ x15 │ x16 │ x17 │ x18 │ x19 │ x20 │ x21 │ x22 │ x23 │ x24 │ x25 │ x26 │ x27 │ x28 │ x29 │ x30 │ x31 │ x32 │ x33 │ x34 │ x35 │ x36 │ x37 │ x38 │ x39 │ x40 │ x41 │ x42 │ x43 │ x44 │ x45 │ x46 │ x47 │ x48 │ x49 │ x50 │ x51 │ x52 │ x53 │ x54 │ x55 │ x56 │ x57 │ x58 │ x59 │ x60 │ x61 │ x62 │ x63 │ x64 │ x65 │ x66 │ x67 │ x68 │ x69 │ x70 │ x71 │ x72 │ x73 │ x74 │ x75 │ x76 │ x77 │ x78 │ x79 │ x80 │ x81 │ x82 │ x83 │\n", + "│ │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │\n", + "├─────┼───────────┼───────────┼──────────┼───────────┼──────────┼───────────┼──────────┼───────────┼───────────┼───────────┼──────────┼───────────┼───────────┼────────────┼───────────┼───────────┼──────────┼──────────┼───────────┼───────────┼───────────┼────────────┼───────────┼───────────┼────────────┼───────────┼───────────┼──────────┼──────────┼──────────┼──────────┼───────────┼───────────┼────────────┼──────────┼───────────┼───────────┼───────────┼───────────┼───────────┼───────────┼───────────┼───────────┼───────────┼───────────┼───────────┼───────────┼──────────┼───────────┼──────────┼────────────┼───────────┼───────────┼────────────┼───────────┼───────────┼───────────┼───────────┼───────────┼──────────┼───────────┼───────────┼───────────┼──────────┼────────────┼──────────┼───────────┼──────────┼───────────┼──────────┼───────────┼───────────┼────────────┼──────────┼───────────┼───────────┼───────────┼───────────┼──────────┼───────────┼──────────┼───────────┼───────────┤\n", + "│ 1 │ 0.691238 │ 0.502941 │ 0.113297 │ 0.328738 │ 0.13378 │ 0.441278 │ 0.685002 │ 0.0538219 │ 0.0761798 │ 0.769235 │ 0.284291 │ 0.171352 │ 0.754563 │ 0.648736 │ 0.0953225 │ 0.775889 │ 0.841043 │ 0.311933 │ 0.56814 │ 0.577725 │ 0.192599 │ 0.00604097 │ 0.581288 │ 0.746245 │ 0.385509 │ 0.355455 │ 0.929221 │ 0.729291 │ 0.778783 │ 0.598102 │ 0.498373 │ 0.0278266 │ 0.0462616 │ 0.0804585 │ 0.486005 │ 0.829665 │ 0.605489 │ 0.922619 │ 0.615983 │ 0.975146 │ 0.218467 │ 0.214458 │ 0.201525 │ 0.388645 │ 0.558404 │ 0.163782 │ 0.437683 │ 0.897702 │ 0.0696074 │ 0.656873 │ 0.096646 │ 0.604482 │ 0.826148 │ 0.90222 │ 0.213158 │ 0.145633 │ 0.715524 │ 0.821202 │ 0.851274 │ 0.809465 │ 0.938894 │ 0.833493 │ 0.0128205 │ 0.911447 │ 0.572925 │ 0.492402 │ 0.70685 │ 0.391735 │ 0.379956 │ 0.894197 │ 0.319608 │ 0.282724 │ 0.662529 │ 0.751371 │ 0.0515758 │ 0.0554555 │ 0.407253 │ 0.714758 │ 0.930454 │ 0.34133 │ 0.409226 │ 0.0593862 │ 0.943453 │\n", + "│ 2 │ 0.815357 │ 0.7703 │ 0.239176 │ 0.275748 │ 0.183924 │ 0.507341 │ 0.284418 │ 0.28708 │ 0.942902 │ 0.0887963 │ 0.734511 │ 0.379075 │ 0.434635 │ 0.474651 │ 0.280465 │ 0.180545 │ 0.997093 │ 0.58534 │ 0.404039 │ 0.0574775 │ 0.829238 │ 0.551627 │ 0.0609086 │ 0.866673 │ 0.00203838 │ 0.23122 │ 0.100199 │ 0.542427 │ 0.6176 │ 0.210846 │ 0.169462 │ 0.317331 │ 0.120702 │ 0.522714 │ 0.771854 │ 0.861075 │ 0.607028 │ 0.577105 │ 0.0263973 │ 0.508519 │ 0.207115 │ 0.260203 │ 0.966495 │ 0.950563 │ 0.23515 │ 0.807233 │ 0.667959 │ 0.469412 │ 0.68944 │ 0.303178 │ 0.916198 │ 0.175827 │ 0.630586 │ 0.617525 │ 0.436164 │ 0.30317 │ 0.0596742 │ 0.0982103 │ 0.094269 │ 0.774918 │ 0.74536 │ 0.45168 │ 0.0928307 │ 0.314255 │ 0.837564 │ 0.507878 │ 0.633839 │ 0.298748 │ 0.501813 │ 0.667421 │ 0.244102 │ 0.99187 │ 0.320146 │ 0.327764 │ 0.0972044 │ 0.865251 │ 0.370263 │ 0.207617 │ 0.490622 │ 0.128018 │ 0.973084 │ 0.769352 │ 0.780947 │\n", + "│ 3 │ 0.816104 │ 0.0311551 │ 0.5683 │ 0.704495 │ 0.549385 │ 0.471999 │ 0.543525 │ 0.878611 │ 0.0553813 │ 0.433413 │ 0.721113 │ 0.90562 │ 0.822592 │ 0.101155 │ 0.215981 │ 0.0727627 │ 0.579711 │ 0.579151 │ 0.755325 │ 0.632599 │ 0.676199 │ 0.921829 │ 0.749605 │ 0.981136 │ 0.10249 │ 0.953556 │ 0.50945 │ 0.646269 │ 0.396988 │ 0.932969 │ 0.506011 │ 0.387092 │ 0.513568 │ 0.548799 │ 0.117301 │ 0.749199 │ 0.161664 │ 0.507067 │ 0.982289 │ 0.0554118 │ 0.0723973 │ 0.296174 │ 0.2617 │ 0.0464874 │ 0.0168145 │ 0.938944 │ 0.731108 │ 0.464276 │ 0.0282041 │ 0.112549 │ 0.745749 │ 0.432314 │ 0.693835 │ 0.956663 │ 0.177674 │ 0.874948 │ 0.587931 │ 0.834267 │ 0.751571 │ 0.871607 │ 0.118688 │ 0.895995 │ 0.688151 │ 0.931742 │ 0.0470647 │ 0.356565 │ 0.648014 │ 0.314232 │ 0.90112 │ 0.837802 │ 0.419339 │ 0.126734 │ 0.00268467 │ 0.843003 │ 0.505144 │ 0.5602 │ 0.0985052 │ 0.861954 │ 0.860644 │ 0.204682 │ 0.634035 │ 0.553771 │ 0.220832 │\n", + "│ 4 │ 0.0294096 │ 0.602984 │ 0.357492 │ 0.588966 │ 0.100176 │ 0.163219 │ 0.3719 │ 0.0634015 │ 0.57308 │ 0.795895 │ 0.89425 │ 0.0849626 │ 0.763744 │ 0.239118 │ 0.722183 │ 0.856142 │ 0.180864 │ 0.581203 │ 0.3304 │ 0.520827 │ 0.0140902 │ 0.402648 │ 0.492288 │ 0.0419267 │ 0.565855 │ 0.185707 │ 0.912092 │ 0.276022 │ 0.687733 │ 0.152818 │ 0.596199 │ 0.246881 │ 0.624406 │ 0.86924 │ 0.60933 │ 0.662877 │ 0.97319 │ 0.112181 │ 0.417401 │ 0.384564 │ 0.824204 │ 0.936204 │ 0.710395 │ 0.962075 │ 0.429801 │ 0.781552 │ 0.110724 │ 0.238736 │ 0.239962 │ 0.805589 │ 0.45364 │ 0.827796 │ 0.0670384 │ 0.651466 │ 0.136 │ 0.596721 │ 0.0877139 │ 0.147265 │ 0.621543 │ 0.185766 │ 0.935794 │ 0.940496 │ 0.041551 │ 0.380434 │ 0.804594 │ 0.463235 │ 0.614597 │ 0.995259 │ 0.853942 │ 0.909778 │ 0.677835 │ 0.136624 │ 0.0101655 │ 0.313183 │ 0.793315 │ 0.640075 │ 0.802004 │ 0.355651 │ 0.797319 │ 0.811142 │ 0.8665 │ 0.440861 │ 0.110327 │\n", + "│ 5 │ 0.735294 │ 0.518496 │ 0.867751 │ 0.944726 │ 0.304592 │ 0.341913 │ 0.681918 │ 0.0712981 │ 0.999297 │ 0.8393 │ 0.949566 │ 0.461614 │ 0.249693 │ 0.5351 │ 0.908043 │ 0.197059 │ 0.688323 │ 0.200507 │ 0.0450562 │ 0.70558 │ 0.770484 │ 0.0854422 │ 0.843648 │ 0.641052 │ 0.408662 │ 0.479613 │ 0.47507 │ 0.826897 │ 0.168435 │ 0.433382 │ 0.502158 │ 0.274056 │ 0.61335 │ 0.89971 │ 0.717724 │ 0.94818 │ 0.375389 │ 0.953553 │ 0.455064 │ 0.483564 │ 0.0675189 │ 0.274972 │ 0.0285296 │ 0.683966 │ 0.192759 │ 0.263576 │ 0.531961 │ 0.227704 │ 0.102302 │ 0.786472 │ 0.028373 │ 0.0335419 │ 0.90208 │ 0.493996 │ 0.860681 │ 0.513063 │ 0.0637473 │ 0.185034 │ 0.940987 │ 0.029071 │ 0.715109 │ 0.199015 │ 0.430876 │ 0.038609 │ 0.843466 │ 0.554907 │ 0.130222 │ 0.25381 │ 0.927273 │ 0.7202 │ 0.45438 │ 0.968065 │ 0.244117 │ 0.964951 │ 0.59948 │ 0.0335906 │ 0.0874323 │ 0.919734 │ 0.57089 │ 0.541353 │ 0.743658 │ 0.953108 │ 0.601884 │\n", + "│ 6 │ 0.104985 │ 0.748484 │ 0.270928 │ 0.726806 │ 0.242353 │ 0.424651 │ 0.89167 │ 0.0989472 │ 0.63658 │ 0.451663 │ 0.58207 │ 0.37181 │ 0.784128 │ 0.881445 │ 0.522263 │ 0.843995 │ 0.647146 │ 0.510528 │ 0.760864 │ 0.176008 │ 0.604682 │ 0.529928 │ 0.868341 │ 0.956101 │ 0.636343 │ 0.346888 │ 0.383413 │ 0.124892 │ 0.137329 │ 0.953385 │ 0.019473 │ 0.918218 │ 0.217521 │ 0.454126 │ 0.216184 │ 0.128865 │ 0.71009 │ 0.202403 │ 0.786343 │ 0.376344 │ 0.876184 │ 0.173444 │ 0.543272 │ 0.569241 │ 0.217485 │ 0.54297 │ 0.794895 │ 0.197436 │ 0.405965 │ 0.218483 │ 0.621621 │ 0.588901 │ 0.55798 │ 0.758998 │ 0.0190227 │ 0.0141301 │ 0.262226 │ 0.526782 │ 0.897284 │ 0.160378 │ 0.882961 │ 0.908824 │ 0.288973 │ 0.995771 │ 0.217869 │ 0.155613 │ 0.14274 │ 0.398137 │ 0.715217 │ 0.671268 │ 0.309147 │ 0.0980875 │ 0.0506852 │ 0.705388 │ 0.856581 │ 0.490066 │ 0.868483 │ 0.923126 │ 0.134035 │ 0.0515882 │ 0.745122 │ 0.967005 │ 0.56791 │\n", + "│ 7 │ 0.122963 │ 0.299071 │ 0.398845 │ 0.595742 │ 0.897918 │ 0.767277 │ 0.528869 │ 0.0952854 │ 0.876014 │ 0.91985 │ 0.274228 │ 0.235176 │ 0.155168 │ 0.897107 │ 0.844195 │ 0.523281 │ 0.695864 │ 0.151124 │ 0.201065 │ 0.433001 │ 0.967306 │ 0.277211 │ 0.0633977 │ 0.559057 │ 0.803475 │ 0.955828 │ 0.418065 │ 0.176816 │ 0.452077 │ 0.212605 │ 0.359162 │ 0.872456 │ 0.954056 │ 0.00969582 │ 0.654253 │ 0.451168 │ 0.936156 │ 0.83678 │ 0.352908 │ 0.355679 │ 0.351366 │ 0.6976 │ 0.182677 │ 0.582376 │ 0.446669 │ 0.468831 │ 0.986564 │ 0.787202 │ 0.0207218 │ 0.830462 │ 0.528791 │ 0.649264 │ 0.462557 │ 0.495886 │ 0.331946 │ 0.207492 │ 0.147196 │ 0.413481 │ 0.384668 │ 0.289411 │ 0.671321 │ 0.0849257 │ 0.822076 │ 0.691735 │ 0.00201329 │ 0.986001 │ 0.255116 │ 0.62795 │ 0.439429 │ 0.855033 │ 0.0392876 │ 0.533968 │ 0.954528 │ 0.621568 │ 0.554224 │ 0.245084 │ 0.430127 │ 0.0393655 │ 0.861053 │ 0.79146 │ 0.19431 │ 0.130647 │ 0.320469 │\n", "⋮\n", - "│ 90 │ 0.821432 │ 0.225739 │ 0.141465 │ 0.575822 │ 0.254692 │ 0.419062 │\n", - "│ 91 │ 0.202556 │ 0.127388 │ 0.19081 │ 0.404601 │ 0.530942 │ 0.608409 │\n", - "│ 92 │ 0.937518 │ 0.221761 │ 0.411655 │ 0.79638 │ 0.869549 │ 0.10569 │\n", - "│ 93 │ 0.0948212 │ 0.397172 │ 0.186674 │ 0.112636 │ 0.340852 │ 0.385897 │\n", - "│ 94 │ 0.795611 │ 0.322295 │ 0.24501 │ 0.852741 │ 0.513223 │ 0.746023 │\n", - "│ 95 │ 0.616807 │ 0.643675 │ 0.818222 │ 0.452144 │ 0.577498 │ 0.0275389 │\n", - "│ 96 │ 0.941877 │ 0.274469 │ 0.568364 │ 0.673138 │ 0.498849 │ 0.0177696 │\n", - "│ 97 │ 0.690393 │ 0.911381 │ 0.958798 │ 0.115693 │ 0.208621 │ 0.433634 │\n", - "│ 98 │ 0.41313 │ 0.341462 │ 0.504511 │ 0.37107 │ 0.0769661 │ 0.127312 │\n", - "│ 99 │ 0.368159 │ 0.517769 │ 0.455241 │ 0.00631866 │ 0.150526 │ 0.379844 │\n", - "│ 100 │ 0.200116 │ 0.231079 │ 0.972762 │ 0.848786 │ 0.203343 │ 0.12242 │" + "│ 93 │ 0.643518 │ 0.423669 │ 0.987373 │ 0.902996 │ 0.264184 │ 0.0687632 │ 0.246364 │ 0.936528 │ 0.0626176 │ 0.119095 │ 0.261827 │ 0.543948 │ 0.142993 │ 0.877995 │ 0.951343 │ 0.394104 │ 0.861538 │ 0.491522 │ 0.592395 │ 0.952958 │ 0.905107 │ 0.170457 │ 0.691412 │ 0.305499 │ 0.179366 │ 0.662212 │ 0.933041 │ 0.230239 │ 0.32764 │ 0.767 │ 0.709468 │ 0.841898 │ 0.0214527 │ 0.253015 │ 0.526092 │ 0.414261 │ 0.0857839 │ 0.323197 │ 0.989589 │ 0.580757 │ 0.332117 │ 0.743741 │ 0.572841 │ 0.133382 │ 0.445565 │ 0.921668 │ 0.0830206 │ 0.572769 │ 0.320461 │ 0.166777 │ 0.243892 │ 0.132612 │ 0.765052 │ 0.307305 │ 0.683863 │ 0.275755 │ 0.271901 │ 0.883787 │ 0.862931 │ 0.750414 │ 0.88543 │ 0.388676 │ 0.0279482 │ 0.862581 │ 0.81636 │ 0.293966 │ 0.30188 │ 0.662253 │ 0.549602 │ 0.405031 │ 0.967761 │ 0.868514 │ 0.475268 │ 0.644624 │ 0.0152846 │ 0.153742 │ 0.855043 │ 0.535195 │ 0.122718 │ 0.120852 │ 0.447783 │ 0.157549 │ 0.246831 │\n", + "│ 94 │ 0.286892 │ 0.860191 │ 0.234009 │ 0.654314 │ 0.03576 │ 0.327378 │ 0.858997 │ 0.966634 │ 0.287739 │ 0.664859 │ 0.668162 │ 0.999837 │ 0.251666 │ 0.481451 │ 0.911759 │ 0.984338 │ 0.800379 │ 0.621215 │ 0.0309279 │ 0.0435778 │ 0.784397 │ 0.725739 │ 0.697913 │ 0.903341 │ 0.677785 │ 0.0550472 │ 0.184176 │ 0.659656 │ 0.375984 │ 0.115483 │ 0.780654 │ 0.499065 │ 0.497268 │ 0.608305 │ 0.789557 │ 0.634451 │ 0.654711 │ 0.064393 │ 0.690274 │ 0.376052 │ 0.33517 │ 0.125751 │ 0.89956 │ 0.736922 │ 0.122134 │ 0.232993 │ 0.542237 │ 0.983583 │ 0.19017 │ 0.22769 │ 0.446814 │ 0.880462 │ 0.283374 │ 0.74851 │ 0.35832 │ 0.435148 │ 0.977156 │ 0.911051 │ 0.232685 │ 0.693866 │ 0.405745 │ 0.110243 │ 0.594669 │ 0.815154 │ 0.569185 │ 0.827309 │ 0.367762 │ 0.374001 │ 0.794016 │ 0.367475 │ 0.183657 │ 0.64263 │ 0.800634 │ 0.809971 │ 0.232202 │ 0.726017 │ 0.550618 │ 0.689757 │ 0.066237 │ 0.218705 │ 0.49543 │ 0.0532699 │ 0.232517 │\n", + "│ 95 │ 0.762523 │ 0.0542611 │ 0.108823 │ 0.127457 │ 0.649579 │ 0.777691 │ 0.0945 │ 0.592004 │ 0.687948 │ 0.611934 │ 0.926688 │ 0.0223771 │ 0.792158 │ 0.319545 │ 0.239427 │ 0.136574 │ 0.279412 │ 0.5293 │ 0.198804 │ 0.951605 │ 0.332071 │ 0.052404 │ 0.761082 │ 0.941384 │ 0.360823 │ 0.727022 │ 0.694236 │ 0.217221 │ 0.517302 │ 0.137989 │ 0.382683 │ 0.516682 │ 0.0273436 │ 0.358914 │ 0.325977 │ 0.0547373 │ 0.609597 │ 0.980888 │ 0.273456 │ 0.0532361 │ 0.542837 │ 0.0837315 │ 0.431383 │ 0.820543 │ 0.969667 │ 0.930366 │ 0.81633 │ 0.549184 │ 0.288896 │ 0.421891 │ 0.429255 │ 0.212976 │ 0.774767 │ 0.68849 │ 0.897244 │ 0.130483 │ 0.927341 │ 0.220485 │ 0.544031 │ 0.810184 │ 0.0448566 │ 0.306898 │ 0.30188 │ 0.660923 │ 0.721688 │ 0.148359 │ 0.92096 │ 0.910263 │ 0.0856758 │ 0.184058 │ 0.879899 │ 0.797819 │ 0.630675 │ 0.482465 │ 0.736122 │ 0.826809 │ 0.215441 │ 0.372103 │ 0.253004 │ 0.794828 │ 0.412552 │ 0.108983 │ 0.0225282 │\n", + "│ 96 │ 0.12173 │ 0.215425 │ 0.96121 │ 0.486031 │ 0.455957 │ 0.842317 │ 0.605808 │ 0.380054 │ 0.0163276 │ 0.530926 │ 0.102426 │ 0.415345 │ 0.901303 │ 0.141939 │ 0.283323 │ 0.326317 │ 0.384437 │ 0.667797 │ 0.271977 │ 0.0610576 │ 0.72723 │ 0.0149813 │ 0.565326 │ 0.512474 │ 0.0700556 │ 0.482017 │ 0.0311834 │ 0.129381 │ 0.808303 │ 0.275073 │ 0.167881 │ 0.81439 │ 0.347019 │ 0.51895 │ 0.570866 │ 0.434214 │ 0.557136 │ 0.0355696 │ 0.0426792 │ 0.956796 │ 0.0610626 │ 0.604949 │ 0.108962 │ 0.0951331 │ 0.644703 │ 0.250493 │ 0.442453 │ 0.188148 │ 0.694041 │ 0.246715 │ 0.560341 │ 0.915796 │ 0.812703 │ 0.748743 │ 0.0905025 │ 0.355802 │ 0.523357 │ 0.558633 │ 0.192035 │ 0.606845 │ 0.139853 │ 0.948259 │ 0.470579 │ 0.494305 │ 0.684164 │ 0.971938 │ 0.285274 │ 0.703147 │ 0.960012 │ 0.406314 │ 0.646186 │ 0.0628213 │ 0.449112 │ 0.168545 │ 0.562227 │ 0.113115 │ 0.649923 │ 0.315862 │ 0.729933 │ 0.118675 │ 0.605344 │ 0.583898 │ 0.0048144 │\n", + "│ 97 │ 0.42203 │ 0.393003 │ 0.153029 │ 0.452593 │ 0.986399 │ 0.671772 │ 0.457919 │ 0.926908 │ 0.803482 │ 0.939011 │ 0.518598 │ 0.359615 │ 0.548051 │ 0.212636 │ 0.0731782 │ 0.68167 │ 0.864692 │ 0.873098 │ 0.261773 │ 0.63234 │ 0.860118 │ 0.212664 │ 0.490204 │ 0.594588 │ 0.362564 │ 0.0569334 │ 0.371773 │ 0.665372 │ 0.633885 │ 0.869438 │ 0.782921 │ 0.568278 │ 0.613711 │ 0.0646781 │ 0.568709 │ 0.0943753 │ 0.782212 │ 0.432347 │ 0.0244455 │ 0.95384 │ 0.797635 │ 0.140884 │ 0.879326 │ 0.37472 │ 0.747514 │ 0.180237 │ 0.695716 │ 0.619207 │ 0.531734 │ 0.33093 │ 0.196062 │ 0.687112 │ 0.633876 │ 0.354159 │ 0.481302 │ 0.811022 │ 0.578211 │ 0.336943 │ 0.0940363 │ 0.724985 │ 0.962264 │ 0.250931 │ 0.496936 │ 0.181407 │ 0.689202 │ 0.889266 │ 0.251657 │ 0.180193 │ 0.18819 │ 0.869222 │ 0.546458 │ 0.174806 │ 0.636397 │ 0.471196 │ 0.0329431 │ 0.767817 │ 0.737197 │ 0.626441 │ 0.996913 │ 0.17115 │ 0.57334 │ 0.895716 │ 0.431745 │\n", + "│ 98 │ 0.248061 │ 0.122138 │ 0.734757 │ 0.0606331 │ 0.468839 │ 0.519787 │ 0.520335 │ 0.82474 │ 0.117171 │ 0.0850115 │ 0.692088 │ 0.712345 │ 0.803026 │ 0.00596116 │ 0.822665 │ 0.49652 │ 0.595358 │ 0.696547 │ 0.565099 │ 0.166821 │ 0.986648 │ 0.548808 │ 0.113521 │ 0.240256 │ 0.796755 │ 0.143709 │ 0.64338 │ 0.517787 │ 0.88353 │ 0.340531 │ 0.42308 │ 0.451594 │ 0.721952 │ 0.266143 │ 0.291048 │ 0.28503 │ 0.451818 │ 0.123756 │ 0.671964 │ 0.313437 │ 0.92333 │ 0.786745 │ 0.871443 │ 0.893781 │ 0.465217 │ 0.354208 │ 0.544057 │ 0.968364 │ 0.988405 │ 0.135705 │ 0.501713 │ 0.328346 │ 0.0509031 │ 0.65112 │ 0.774361 │ 0.593005 │ 0.0993552 │ 0.553572 │ 0.909204 │ 0.190663 │ 0.902283 │ 0.203895 │ 0.36173 │ 0.539731 │ 0.0138681 │ 0.344721 │ 0.585383 │ 0.980568 │ 0.6058 │ 0.492842 │ 0.571414 │ 0.192626 │ 0.310981 │ 0.183664 │ 0.292063 │ 0.675411 │ 0.315551 │ 0.235098 │ 0.84903 │ 0.536033 │ 0.238773 │ 0.678753 │ 0.231479 │\n", + "│ 99 │ 0.954902 │ 0.781351 │ 0.960357 │ 0.879493 │ 0.039775 │ 0.212359 │ 0.554541 │ 0.25347 │ 0.991295 │ 0.972408 │ 0.414771 │ 0.916212 │ 0.101781 │ 0.899393 │ 0.946388 │ 0.134736 │ 0.844741 │ 0.177013 │ 0.346461 │ 0.448448 │ 0.206165 │ 0.418927 │ 0.186918 │ 0.954326 │ 0.977229 │ 0.0905327 │ 0.800384 │ 0.668382 │ 0.603604 │ 0.527407 │ 0.748646 │ 0.766678 │ 0.0758325 │ 0.396821 │ 0.433751 │ 0.357954 │ 0.214486 │ 0.846937 │ 0.596584 │ 0.0956016 │ 0.457306 │ 0.160344 │ 0.377366 │ 0.987179 │ 0.521804 │ 0.213785 │ 0.488711 │ 0.83219 │ 0.551184 │ 0.331853 │ 0.892448 │ 0.144073 │ 0.101325 │ 0.909182 │ 0.975881 │ 0.0280106 │ 0.882932 │ 0.972972 │ 0.431094 │ 0.224809 │ 0.495968 │ 0.693719 │ 0.563527 │ 0.226192 │ 0.113672 │ 0.22338 │ 0.0767187 │ 0.199073 │ 0.70545 │ 0.43567 │ 0.244866 │ 0.294578 │ 0.465644 │ 0.174379 │ 0.728899 │ 0.354953 │ 0.347611 │ 0.327741 │ 0.465346 │ 0.958826 │ 0.67066 │ 0.25833 │ 0.122299 │\n", + "│ 100 │ 0.560985 │ 0.836088 │ 0.636395 │ 0.646751 │ 0.777467 │ 0.380337 │ 0.161077 │ 0.211871 │ 0.939554 │ 0.161152 │ 0.26445 │ 0.352985 │ 0.0261203 │ 0.171109 │ 0.372271 │ 0.347078 │ 0.632896 │ 0.19739 │ 0.302938 │ 0.47801 │ 0.058978 │ 0.707095 │ 0.215833 │ 0.0338118 │ 0.429517 │ 0.292027 │ 0.263542 │ 0.579394 │ 0.837929 │ 0.337819 │ 0.998979 │ 0.834723 │ 0.324117 │ 0.191956 │ 0.691444 │ 0.197143 │ 0.5869 │ 0.764146 │ 0.883351 │ 0.732318 │ 0.126743 │ 0.15607 │ 0.191125 │ 0.87733 │ 0.0115159 │ 0.0588984 │ 0.0114437 │ 0.975808 │ 0.451482 │ 0.153821 │ 0.00852908 │ 0.852663 │ 0.785265 │ 0.00229688 │ 0.520861 │ 0.290748 │ 0.270761 │ 0.531064 │ 0.375883 │ 0.825527 │ 0.421109 │ 0.71135 │ 0.952632 │ 0.267159 │ 0.270503 │ 0.645644 │ 0.0915219 │ 0.739943 │ 0.328618 │ 0.92223 │ 0.589661 │ 0.535565 │ 0.205743 │ 0.852661 │ 0.656383 │ 0.0462211 │ 0.677539 │ 0.0066637 │ 0.297644 │ 0.853792 │ 0.37339 │ 0.878396 │ 0.131792 │" ] }, "execution_count": 17, @@ -713,29 +695,29 @@ "name": "stdout", "output_type": "stream", "text": [ - " 143.422 μs (1511 allocations: 194.41 KiB)\n" + " 135.301 μs (1511 allocations: 194.41 KiB)\n" ] }, { "data": { "text/html": [ - "

1 rows × 1,000 columns (omitted printing of 992 columns)

x1x2x3x4x5x6x7x8
Float64Float64Float64Float64Float64Float64Float64Float64
10.4694270.8936050.3483010.1898530.6026940.4270640.1200580.403865
" + "

1 rows × 1,000 columns (omitted printing of 900 columns)

x1x2x3x4x5x6x7x8x9x10x11x12x13x14x15x16x17x18x19x20x21x22x23x24x25x26x27x28x29x30x31x32x33x34x35x36x37x38x39x40x41x42x43x44x45x46x47x48x49x50x51x52x53x54x55x56x57x58x59x60x61x62x63x64x65x66x67x68x69x70x71x72x73x74x75x76x77x78x79x80x81x82x83x84x85x86x87x88x89x90x91x92x93x94x95x96x97x98x99x100
Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64
10.6912380.5029410.1132970.3287380.133780.4412780.6850020.05382190.07617980.7692350.2842910.1713520.7545630.6487360.09532250.7758890.8410430.3119330.568140.5777250.1925990.006040970.5812880.7462450.3855090.3554550.9292210.7292910.7787830.5981020.4983730.02782660.04626160.08045850.4860050.8296650.6054890.9226190.6159830.9751460.2184670.2144580.2015250.3886450.5584040.1637820.4376830.8977020.06960740.6568730.0966460.6044820.8261480.902220.2131580.1456330.7155240.8212020.8512740.8094650.9388940.8334930.01282050.9114470.5729250.4924020.706850.3917350.3799560.8941970.3196080.2827240.6625290.7513710.05157580.05545550.4072530.7147580.9304540.341330.4092260.05938620.9434530.3962890.6113590.6303750.01229840.9485870.3953670.9122410.1924440.690410.4982020.1574210.08755310.9072020.6713110.847970.9903170.722969
" ], "text/latex": [ - "\\begin{tabular}{r|ccccccccc}\n", - "\t& x1 & x2 & x3 & x4 & x5 & x6 & x7 & x8 & \\\\\n", + "\\begin{tabular}{r|ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc}\n", + "\t& x1 & x2 & x3 & x4 & x5 & x6 & x7 & x8 & x9 & x10 & x11 & x12 & x13 & x14 & x15 & x16 & x17 & x18 & x19 & x20 & x21 & x22 & x23 & x24 & x25 & x26 & x27 & x28 & x29 & x30 & x31 & x32 & x33 & x34 & x35 & x36 & x37 & x38 & x39 & x40 & x41 & x42 & x43 & x44 & x45 & x46 & x47 & x48 & x49 & x50 & x51 & x52 & x53 & x54 & x55 & x56 & x57 & x58 & x59 & x60 & x61 & x62 & x63 & x64 & x65 & x66 & x67 & x68 & x69 & x70 & x71 & x72 & x73 & x74 & x75 & x76 & x77 & x78 & x79 & x80 & x81 & x82 & x83 & x84 & x85 & x86 & x87 & x88 & x89 & x90 & x91 & x92 & x93 & x94 & x95 & x96 & x97 & x98 & x99 & x100 & \\\\\n", "\t\\hline\n", - "\t& Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & \\\\\n", + "\t& Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & \\\\\n", "\t\\hline\n", - "\t1 & 0.469427 & 0.893605 & 0.348301 & 0.189853 & 0.602694 & 0.427064 & 0.120058 & 0.403865 & $\\dots$ \\\\\n", + "\t1 & 0.691238 & 0.502941 & 0.113297 & 0.328738 & 0.13378 & 0.441278 & 0.685002 & 0.0538219 & 0.0761798 & 0.769235 & 0.284291 & 0.171352 & 0.754563 & 0.648736 & 0.0953225 & 0.775889 & 0.841043 & 0.311933 & 0.56814 & 0.577725 & 0.192599 & 0.00604097 & 0.581288 & 0.746245 & 0.385509 & 0.355455 & 0.929221 & 0.729291 & 0.778783 & 0.598102 & 0.498373 & 0.0278266 & 0.0462616 & 0.0804585 & 0.486005 & 0.829665 & 0.605489 & 0.922619 & 0.615983 & 0.975146 & 0.218467 & 0.214458 & 0.201525 & 0.388645 & 0.558404 & 0.163782 & 0.437683 & 0.897702 & 0.0696074 & 0.656873 & 0.096646 & 0.604482 & 0.826148 & 0.90222 & 0.213158 & 0.145633 & 0.715524 & 0.821202 & 0.851274 & 0.809465 & 0.938894 & 0.833493 & 0.0128205 & 0.911447 & 0.572925 & 0.492402 & 0.70685 & 0.391735 & 0.379956 & 0.894197 & 0.319608 & 0.282724 & 0.662529 & 0.751371 & 0.0515758 & 0.0554555 & 0.407253 & 0.714758 & 0.930454 & 0.34133 & 0.409226 & 0.0593862 & 0.943453 & 0.396289 & 0.611359 & 0.630375 & 0.0122984 & 0.948587 & 0.395367 & 0.912241 & 0.192444 & 0.69041 & 0.498202 & 0.157421 & 0.0875531 & 0.907202 & 0.671311 & 0.84797 & 0.990317 & 0.722969 & $\\dots$ \\\\\n", "\\end{tabular}\n" ], "text/plain": [ - "1×1000 DataFrame. Omitted printing of 994 columns\n", - "│ Row │ x1 │ x2 │ x3 │ x4 │ x5 │ x6 │\n", - "│ │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │\n", - "├─────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤\n", - "│ 1 │ 0.469427 │ 0.893605 │ 0.348301 │ 0.189853 │ 0.602694 │ 0.427064 │" + "1×1000 DataFrame. Omitted printing of 911 columns\n", + "│ Row │ x1 │ x2 │ x3 │ x4 │ x5 │ x6 │ x7 │ x8 │ x9 │ x10 │ x11 │ x12 │ x13 │ x14 │ x15 │ x16 │ x17 │ x18 │ x19 │ x20 │ x21 │ x22 │ x23 │ x24 │ x25 │ x26 │ x27 │ x28 │ x29 │ x30 │ x31 │ x32 │ x33 │ x34 │ x35 │ x36 │ x37 │ x38 │ x39 │ x40 │ x41 │ x42 │ x43 │ x44 │ x45 │ x46 │ x47 │ x48 │ x49 │ x50 │ x51 │ x52 │ x53 │ x54 │ x55 │ x56 │ x57 │ x58 │ x59 │ x60 │ x61 │ x62 │ x63 │ x64 │ x65 │ x66 │ x67 │ x68 │ x69 │ x70 │ x71 │ x72 │ x73 │ x74 │ x75 │ x76 │ x77 │ x78 │ x79 │ x80 │ x81 │ x82 │ x83 │ x84 │ x85 │ x86 │ x87 │ x88 │ x89 │\n", + "│ │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │\n", + "├─────┼──────────┼──────────┼──────────┼──────────┼─────────┼──────────┼──────────┼───────────┼───────────┼──────────┼──────────┼──────────┼──────────┼──────────┼───────────┼──────────┼──────────┼──────────┼─────────┼──────────┼──────────┼────────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼───────────┼───────────┼───────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼───────────┼──────────┼──────────┼──────────┼──────────┼─────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼───────────┼──────────┼──────────┼──────────┼─────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼───────────┼───────────┼──────────┼──────────┼──────────┼─────────┼──────────┼───────────┼──────────┼──────────┼──────────┼──────────┼───────────┼──────────┼──────────┤\n", + "│ 1 │ 0.691238 │ 0.502941 │ 0.113297 │ 0.328738 │ 0.13378 │ 0.441278 │ 0.685002 │ 0.0538219 │ 0.0761798 │ 0.769235 │ 0.284291 │ 0.171352 │ 0.754563 │ 0.648736 │ 0.0953225 │ 0.775889 │ 0.841043 │ 0.311933 │ 0.56814 │ 0.577725 │ 0.192599 │ 0.00604097 │ 0.581288 │ 0.746245 │ 0.385509 │ 0.355455 │ 0.929221 │ 0.729291 │ 0.778783 │ 0.598102 │ 0.498373 │ 0.0278266 │ 0.0462616 │ 0.0804585 │ 0.486005 │ 0.829665 │ 0.605489 │ 0.922619 │ 0.615983 │ 0.975146 │ 0.218467 │ 0.214458 │ 0.201525 │ 0.388645 │ 0.558404 │ 0.163782 │ 0.437683 │ 0.897702 │ 0.0696074 │ 0.656873 │ 0.096646 │ 0.604482 │ 0.826148 │ 0.90222 │ 0.213158 │ 0.145633 │ 0.715524 │ 0.821202 │ 0.851274 │ 0.809465 │ 0.938894 │ 0.833493 │ 0.0128205 │ 0.911447 │ 0.572925 │ 0.492402 │ 0.70685 │ 0.391735 │ 0.379956 │ 0.894197 │ 0.319608 │ 0.282724 │ 0.662529 │ 0.751371 │ 0.0515758 │ 0.0554555 │ 0.407253 │ 0.714758 │ 0.930454 │ 0.34133 │ 0.409226 │ 0.0593862 │ 0.943453 │ 0.396289 │ 0.611359 │ 0.630375 │ 0.0122984 │ 0.948587 │ 0.395367 │" ] }, "execution_count": 18, @@ -756,29 +738,29 @@ "name": "stdout", "output_type": "stream", "text": [ - " 22.618 ns (1 allocation: 32 bytes)\n" + " 24.698 ns (1 allocation: 32 bytes)\n" ] }, { "data": { "text/html": [ - "

DataFrameRow

1 rows × 1,000 columns (omitted printing of 992 columns)

x1x2x3x4x5x6x7x8
Float64Float64Float64Float64Float64Float64Float64Float64
10.4694270.8936050.3483010.1898530.6026940.4270640.1200580.403865
" + "

DataFrameRow

1 rows × 1,000 columns (omitted printing of 900 columns)

x1x2x3x4x5x6x7x8x9x10x11x12x13x14x15x16x17x18x19x20x21x22x23x24x25x26x27x28x29x30x31x32x33x34x35x36x37x38x39x40x41x42x43x44x45x46x47x48x49x50x51x52x53x54x55x56x57x58x59x60x61x62x63x64x65x66x67x68x69x70x71x72x73x74x75x76x77x78x79x80x81x82x83x84x85x86x87x88x89x90x91x92x93x94x95x96x97x98x99x100
Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64
10.6912380.5029410.1132970.3287380.133780.4412780.6850020.05382190.07617980.7692350.2842910.1713520.7545630.6487360.09532250.7758890.8410430.3119330.568140.5777250.1925990.006040970.5812880.7462450.3855090.3554550.9292210.7292910.7787830.5981020.4983730.02782660.04626160.08045850.4860050.8296650.6054890.9226190.6159830.9751460.2184670.2144580.2015250.3886450.5584040.1637820.4376830.8977020.06960740.6568730.0966460.6044820.8261480.902220.2131580.1456330.7155240.8212020.8512740.8094650.9388940.8334930.01282050.9114470.5729250.4924020.706850.3917350.3799560.8941970.3196080.2827240.6625290.7513710.05157580.05545550.4072530.7147580.9304540.341330.4092260.05938620.9434530.3962890.6113590.6303750.01229840.9485870.3953670.9122410.1924440.690410.4982020.1574210.08755310.9072020.6713110.847970.9903170.722969
" ], "text/latex": [ - "\\begin{tabular}{r|ccccccccc}\n", - "\t& x1 & x2 & x3 & x4 & x5 & x6 & x7 & x8 & \\\\\n", + "\\begin{tabular}{r|ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc}\n", + "\t& x1 & x2 & x3 & x4 & x5 & x6 & x7 & x8 & x9 & x10 & x11 & x12 & x13 & x14 & x15 & x16 & x17 & x18 & x19 & x20 & x21 & x22 & x23 & x24 & x25 & x26 & x27 & x28 & x29 & x30 & x31 & x32 & x33 & x34 & x35 & x36 & x37 & x38 & x39 & x40 & x41 & x42 & x43 & x44 & x45 & x46 & x47 & x48 & x49 & x50 & x51 & x52 & x53 & x54 & x55 & x56 & x57 & x58 & x59 & x60 & x61 & x62 & x63 & x64 & x65 & x66 & x67 & x68 & x69 & x70 & x71 & x72 & x73 & x74 & x75 & x76 & x77 & x78 & x79 & x80 & x81 & x82 & x83 & x84 & x85 & x86 & x87 & x88 & x89 & x90 & x91 & x92 & x93 & x94 & x95 & x96 & x97 & x98 & x99 & x100 & \\\\\n", "\t\\hline\n", - "\t& Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & \\\\\n", + "\t& Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & \\\\\n", "\t\\hline\n", - "\t1 & 0.469427 & 0.893605 & 0.348301 & 0.189853 & 0.602694 & 0.427064 & 0.120058 & 0.403865 & $\\dots$ \\\\\n", + "\t1 & 0.691238 & 0.502941 & 0.113297 & 0.328738 & 0.13378 & 0.441278 & 0.685002 & 0.0538219 & 0.0761798 & 0.769235 & 0.284291 & 0.171352 & 0.754563 & 0.648736 & 0.0953225 & 0.775889 & 0.841043 & 0.311933 & 0.56814 & 0.577725 & 0.192599 & 0.00604097 & 0.581288 & 0.746245 & 0.385509 & 0.355455 & 0.929221 & 0.729291 & 0.778783 & 0.598102 & 0.498373 & 0.0278266 & 0.0462616 & 0.0804585 & 0.486005 & 0.829665 & 0.605489 & 0.922619 & 0.615983 & 0.975146 & 0.218467 & 0.214458 & 0.201525 & 0.388645 & 0.558404 & 0.163782 & 0.437683 & 0.897702 & 0.0696074 & 0.656873 & 0.096646 & 0.604482 & 0.826148 & 0.90222 & 0.213158 & 0.145633 & 0.715524 & 0.821202 & 0.851274 & 0.809465 & 0.938894 & 0.833493 & 0.0128205 & 0.911447 & 0.572925 & 0.492402 & 0.70685 & 0.391735 & 0.379956 & 0.894197 & 0.319608 & 0.282724 & 0.662529 & 0.751371 & 0.0515758 & 0.0554555 & 0.407253 & 0.714758 & 0.930454 & 0.34133 & 0.409226 & 0.0593862 & 0.943453 & 0.396289 & 0.611359 & 0.630375 & 0.0122984 & 0.948587 & 0.395367 & 0.912241 & 0.192444 & 0.69041 & 0.498202 & 0.157421 & 0.0875531 & 0.907202 & 0.671311 & 0.84797 & 0.990317 & 0.722969 & $\\dots$ \\\\\n", "\\end{tabular}\n" ], "text/plain": [ - "DataFrameRow. Omitted printing of 994 columns\n", - "│ Row │ x1 │ x2 │ x3 │ x4 │ x5 │ x6 │\n", - "│ │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │\n", - "├─────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤\n", - "│ 1 │ 0.469427 │ 0.893605 │ 0.348301 │ 0.189853 │ 0.602694 │ 0.427064 │" + "DataFrameRow. Omitted printing of 911 columns\n", + "│ Row │ x1 │ x2 │ x3 │ x4 │ x5 │ x6 │ x7 │ x8 │ x9 │ x10 │ x11 │ x12 │ x13 │ x14 │ x15 │ x16 │ x17 │ x18 │ x19 │ x20 │ x21 │ x22 │ x23 │ x24 │ x25 │ x26 │ x27 │ x28 │ x29 │ x30 │ x31 │ x32 │ x33 │ x34 │ x35 │ x36 │ x37 │ x38 │ x39 │ x40 │ x41 │ x42 │ x43 │ x44 │ x45 │ x46 │ x47 │ x48 │ x49 │ x50 │ x51 │ x52 │ x53 │ x54 │ x55 │ x56 │ x57 │ x58 │ x59 │ x60 │ x61 │ x62 │ x63 │ x64 │ x65 │ x66 │ x67 │ x68 │ x69 │ x70 │ x71 │ x72 │ x73 │ x74 │ x75 │ x76 │ x77 │ x78 │ x79 │ x80 │ x81 │ x82 │ x83 │ x84 │ x85 │ x86 │ x87 │ x88 │ x89 │\n", + "│ │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │\n", + "├─────┼──────────┼──────────┼──────────┼──────────┼─────────┼──────────┼──────────┼───────────┼───────────┼──────────┼──────────┼──────────┼──────────┼──────────┼───────────┼──────────┼──────────┼──────────┼─────────┼──────────┼──────────┼────────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼───────────┼───────────┼───────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼───────────┼──────────┼──────────┼──────────┼──────────┼─────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼───────────┼──────────┼──────────┼──────────┼─────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼───────────┼───────────┼──────────┼──────────┼──────────┼─────────┼──────────┼───────────┼──────────┼──────────┼──────────┼──────────┼───────────┼──────────┼──────────┤\n", + "│ 1 │ 0.691238 │ 0.502941 │ 0.113297 │ 0.328738 │ 0.13378 │ 0.441278 │ 0.685002 │ 0.0538219 │ 0.0761798 │ 0.769235 │ 0.284291 │ 0.171352 │ 0.754563 │ 0.648736 │ 0.0953225 │ 0.775889 │ 0.841043 │ 0.311933 │ 0.56814 │ 0.577725 │ 0.192599 │ 0.00604097 │ 0.581288 │ 0.746245 │ 0.385509 │ 0.355455 │ 0.929221 │ 0.729291 │ 0.778783 │ 0.598102 │ 0.498373 │ 0.0278266 │ 0.0462616 │ 0.0804585 │ 0.486005 │ 0.829665 │ 0.605489 │ 0.922619 │ 0.615983 │ 0.975146 │ 0.218467 │ 0.214458 │ 0.201525 │ 0.388645 │ 0.558404 │ 0.163782 │ 0.437683 │ 0.897702 │ 0.0696074 │ 0.656873 │ 0.096646 │ 0.604482 │ 0.826148 │ 0.90222 │ 0.213158 │ 0.145633 │ 0.715524 │ 0.821202 │ 0.851274 │ 0.809465 │ 0.938894 │ 0.833493 │ 0.0128205 │ 0.911447 │ 0.572925 │ 0.492402 │ 0.70685 │ 0.391735 │ 0.379956 │ 0.894197 │ 0.319608 │ 0.282724 │ 0.662529 │ 0.751371 │ 0.0515758 │ 0.0554555 │ 0.407253 │ 0.714758 │ 0.930454 │ 0.34133 │ 0.409226 │ 0.0593862 │ 0.943453 │ 0.396289 │ 0.611359 │ 0.630375 │ 0.0122984 │ 0.948587 │ 0.395367 │" ] }, "execution_count": 19, @@ -799,29 +781,29 @@ "name": "stdout", "output_type": "stream", "text": [ - " 23.132 ns (1 allocation: 48 bytes)\n" + " 25.026 ns (1 allocation: 48 bytes)\n" ] }, { "data": { "text/html": [ - "

1 rows × 1,000 columns (omitted printing of 992 columns)

x1x2x3x4x5x6x7x8
Float64Float64Float64Float64Float64Float64Float64Float64
10.4694270.8936050.3483010.1898530.6026940.4270640.1200580.403865
" + "

1 rows × 1,000 columns (omitted printing of 900 columns)

x1x2x3x4x5x6x7x8x9x10x11x12x13x14x15x16x17x18x19x20x21x22x23x24x25x26x27x28x29x30x31x32x33x34x35x36x37x38x39x40x41x42x43x44x45x46x47x48x49x50x51x52x53x54x55x56x57x58x59x60x61x62x63x64x65x66x67x68x69x70x71x72x73x74x75x76x77x78x79x80x81x82x83x84x85x86x87x88x89x90x91x92x93x94x95x96x97x98x99x100
Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64
10.6912380.5029410.1132970.3287380.133780.4412780.6850020.05382190.07617980.7692350.2842910.1713520.7545630.6487360.09532250.7758890.8410430.3119330.568140.5777250.1925990.006040970.5812880.7462450.3855090.3554550.9292210.7292910.7787830.5981020.4983730.02782660.04626160.08045850.4860050.8296650.6054890.9226190.6159830.9751460.2184670.2144580.2015250.3886450.5584040.1637820.4376830.8977020.06960740.6568730.0966460.6044820.8261480.902220.2131580.1456330.7155240.8212020.8512740.8094650.9388940.8334930.01282050.9114470.5729250.4924020.706850.3917350.3799560.8941970.3196080.2827240.6625290.7513710.05157580.05545550.4072530.7147580.9304540.341330.4092260.05938620.9434530.3962890.6113590.6303750.01229840.9485870.3953670.9122410.1924440.690410.4982020.1574210.08755310.9072020.6713110.847970.9903170.722969
" ], "text/latex": [ - "\\begin{tabular}{r|ccccccccc}\n", - "\t& x1 & x2 & x3 & x4 & x5 & x6 & x7 & x8 & \\\\\n", + "\\begin{tabular}{r|ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc}\n", + "\t& x1 & x2 & x3 & x4 & x5 & x6 & x7 & x8 & x9 & x10 & x11 & x12 & x13 & x14 & x15 & x16 & x17 & x18 & x19 & x20 & x21 & x22 & x23 & x24 & x25 & x26 & x27 & x28 & x29 & x30 & x31 & x32 & x33 & x34 & x35 & x36 & x37 & x38 & x39 & x40 & x41 & x42 & x43 & x44 & x45 & x46 & x47 & x48 & x49 & x50 & x51 & x52 & x53 & x54 & x55 & x56 & x57 & x58 & x59 & x60 & x61 & x62 & x63 & x64 & x65 & x66 & x67 & x68 & x69 & x70 & x71 & x72 & x73 & x74 & x75 & x76 & x77 & x78 & x79 & x80 & x81 & x82 & x83 & x84 & x85 & x86 & x87 & x88 & x89 & x90 & x91 & x92 & x93 & x94 & x95 & x96 & x97 & x98 & x99 & x100 & \\\\\n", "\t\\hline\n", - "\t& Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & \\\\\n", + "\t& Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & \\\\\n", "\t\\hline\n", - "\t1 & 0.469427 & 0.893605 & 0.348301 & 0.189853 & 0.602694 & 0.427064 & 0.120058 & 0.403865 & $\\dots$ \\\\\n", + "\t1 & 0.691238 & 0.502941 & 0.113297 & 0.328738 & 0.13378 & 0.441278 & 0.685002 & 0.0538219 & 0.0761798 & 0.769235 & 0.284291 & 0.171352 & 0.754563 & 0.648736 & 0.0953225 & 0.775889 & 0.841043 & 0.311933 & 0.56814 & 0.577725 & 0.192599 & 0.00604097 & 0.581288 & 0.746245 & 0.385509 & 0.355455 & 0.929221 & 0.729291 & 0.778783 & 0.598102 & 0.498373 & 0.0278266 & 0.0462616 & 0.0804585 & 0.486005 & 0.829665 & 0.605489 & 0.922619 & 0.615983 & 0.975146 & 0.218467 & 0.214458 & 0.201525 & 0.388645 & 0.558404 & 0.163782 & 0.437683 & 0.897702 & 0.0696074 & 0.656873 & 0.096646 & 0.604482 & 0.826148 & 0.90222 & 0.213158 & 0.145633 & 0.715524 & 0.821202 & 0.851274 & 0.809465 & 0.938894 & 0.833493 & 0.0128205 & 0.911447 & 0.572925 & 0.492402 & 0.70685 & 0.391735 & 0.379956 & 0.894197 & 0.319608 & 0.282724 & 0.662529 & 0.751371 & 0.0515758 & 0.0554555 & 0.407253 & 0.714758 & 0.930454 & 0.34133 & 0.409226 & 0.0593862 & 0.943453 & 0.396289 & 0.611359 & 0.630375 & 0.0122984 & 0.948587 & 0.395367 & 0.912241 & 0.192444 & 0.69041 & 0.498202 & 0.157421 & 0.0875531 & 0.907202 & 0.671311 & 0.84797 & 0.990317 & 0.722969 & $\\dots$ \\\\\n", "\\end{tabular}\n" ], "text/plain": [ - "1×1000 SubDataFrame. Omitted printing of 994 columns\n", - "│ Row │ x1 │ x2 │ x3 │ x4 │ x5 │ x6 │\n", - "│ │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │\n", - "├─────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤\n", - "│ 1 │ 0.469427 │ 0.893605 │ 0.348301 │ 0.189853 │ 0.602694 │ 0.427064 │" + "1×1000 SubDataFrame. Omitted printing of 911 columns\n", + "│ Row │ x1 │ x2 │ x3 │ x4 │ x5 │ x6 │ x7 │ x8 │ x9 │ x10 │ x11 │ x12 │ x13 │ x14 │ x15 │ x16 │ x17 │ x18 │ x19 │ x20 │ x21 │ x22 │ x23 │ x24 │ x25 │ x26 │ x27 │ x28 │ x29 │ x30 │ x31 │ x32 │ x33 │ x34 │ x35 │ x36 │ x37 │ x38 │ x39 │ x40 │ x41 │ x42 │ x43 │ x44 │ x45 │ x46 │ x47 │ x48 │ x49 │ x50 │ x51 │ x52 │ x53 │ x54 │ x55 │ x56 │ x57 │ x58 │ x59 │ x60 │ x61 │ x62 │ x63 │ x64 │ x65 │ x66 │ x67 │ x68 │ x69 │ x70 │ x71 │ x72 │ x73 │ x74 │ x75 │ x76 │ x77 │ x78 │ x79 │ x80 │ x81 │ x82 │ x83 │ x84 │ x85 │ x86 │ x87 │ x88 │ x89 │\n", + "│ │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │\n", + "├─────┼──────────┼──────────┼──────────┼──────────┼─────────┼──────────┼──────────┼───────────┼───────────┼──────────┼──────────┼──────────┼──────────┼──────────┼───────────┼──────────┼──────────┼──────────┼─────────┼──────────┼──────────┼────────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼───────────┼───────────┼───────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼───────────┼──────────┼──────────┼──────────┼──────────┼─────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼───────────┼──────────┼──────────┼──────────┼─────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┼───────────┼───────────┼──────────┼──────────┼──────────┼─────────┼──────────┼───────────┼──────────┼──────────┼──────────┼──────────┼───────────┼──────────┼──────────┤\n", + "│ 1 │ 0.691238 │ 0.502941 │ 0.113297 │ 0.328738 │ 0.13378 │ 0.441278 │ 0.685002 │ 0.0538219 │ 0.0761798 │ 0.769235 │ 0.284291 │ 0.171352 │ 0.754563 │ 0.648736 │ 0.0953225 │ 0.775889 │ 0.841043 │ 0.311933 │ 0.56814 │ 0.577725 │ 0.192599 │ 0.00604097 │ 0.581288 │ 0.746245 │ 0.385509 │ 0.355455 │ 0.929221 │ 0.729291 │ 0.778783 │ 0.598102 │ 0.498373 │ 0.0278266 │ 0.0462616 │ 0.0804585 │ 0.486005 │ 0.829665 │ 0.605489 │ 0.922619 │ 0.615983 │ 0.975146 │ 0.218467 │ 0.214458 │ 0.201525 │ 0.388645 │ 0.558404 │ 0.163782 │ 0.437683 │ 0.897702 │ 0.0696074 │ 0.656873 │ 0.096646 │ 0.604482 │ 0.826148 │ 0.90222 │ 0.213158 │ 0.145633 │ 0.715524 │ 0.821202 │ 0.851274 │ 0.809465 │ 0.938894 │ 0.833493 │ 0.0128205 │ 0.911447 │ 0.572925 │ 0.492402 │ 0.70685 │ 0.391735 │ 0.379956 │ 0.894197 │ 0.319608 │ 0.282724 │ 0.662529 │ 0.751371 │ 0.0515758 │ 0.0554555 │ 0.407253 │ 0.714758 │ 0.930454 │ 0.34133 │ 0.409226 │ 0.0593862 │ 0.943453 │ 0.396289 │ 0.611359 │ 0.630375 │ 0.0122984 │ 0.948587 │ 0.395367 │" ] }, "execution_count": 20, @@ -842,29 +824,29 @@ "name": "stdout", "output_type": "stream", "text": [ - " 4.847 μs (55 allocations: 7.23 KiB)\n" + " 4.486 μs (55 allocations: 7.23 KiB)\n" ] }, { "data": { "text/html": [ - "

1 rows × 20 columns (omitted printing of 12 columns)

x1x2x3x4x5x6x7x8
Float64Float64Float64Float64Float64Float64Float64Float64
10.4694270.8936050.3483010.1898530.6026940.4270640.1200580.403865
" + "

1 rows × 20 columns

x1x2x3x4x5x6x7x8x9x10x11x12x13x14x15x16x17x18x19x20
Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64
10.6912380.5029410.1132970.3287380.133780.4412780.6850020.05382190.07617980.7692350.2842910.1713520.7545630.6487360.09532250.7758890.8410430.3119330.568140.577725
" ], "text/latex": [ - "\\begin{tabular}{r|ccccccccc}\n", - "\t& x1 & x2 & x3 & x4 & x5 & x6 & x7 & x8 & \\\\\n", + "\\begin{tabular}{r|cccccccccccccccccccc}\n", + "\t& x1 & x2 & x3 & x4 & x5 & x6 & x7 & x8 & x9 & x10 & x11 & x12 & x13 & x14 & x15 & x16 & x17 & x18 & x19 & x20\\\\\n", "\t\\hline\n", - "\t& Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & \\\\\n", + "\t& Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64\\\\\n", "\t\\hline\n", - "\t1 & 0.469427 & 0.893605 & 0.348301 & 0.189853 & 0.602694 & 0.427064 & 0.120058 & 0.403865 & $\\dots$ \\\\\n", + "\t1 & 0.691238 & 0.502941 & 0.113297 & 0.328738 & 0.13378 & 0.441278 & 0.685002 & 0.0538219 & 0.0761798 & 0.769235 & 0.284291 & 0.171352 & 0.754563 & 0.648736 & 0.0953225 & 0.775889 & 0.841043 & 0.311933 & 0.56814 & 0.577725 \\\\\n", "\\end{tabular}\n" ], "text/plain": [ - "1×20 DataFrame. Omitted printing of 14 columns\n", - "│ Row │ x1 │ x2 │ x3 │ x4 │ x5 │ x6 │\n", - "│ │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │\n", - "├─────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤\n", - "│ 1 │ 0.469427 │ 0.893605 │ 0.348301 │ 0.189853 │ 0.602694 │ 0.427064 │" + "1×20 DataFrame\n", + "│ Row │ x1 │ x2 │ x3 │ x4 │ x5 │ x6 │ x7 │ x8 │ x9 │ x10 │ x11 │ x12 │ x13 │ x14 │ x15 │ x16 │ x17 │ x18 │ x19 │ x20 │\n", + "│ │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │\n", + "├─────┼──────────┼──────────┼──────────┼──────────┼─────────┼──────────┼──────────┼───────────┼───────────┼──────────┼──────────┼──────────┼──────────┼──────────┼───────────┼──────────┼──────────┼──────────┼─────────┼──────────┤\n", + "│ 1 │ 0.691238 │ 0.502941 │ 0.113297 │ 0.328738 │ 0.13378 │ 0.441278 │ 0.685002 │ 0.0538219 │ 0.0761798 │ 0.769235 │ 0.284291 │ 0.171352 │ 0.754563 │ 0.648736 │ 0.0953225 │ 0.775889 │ 0.841043 │ 0.311933 │ 0.56814 │ 0.577725 │" ] }, "execution_count": 21, @@ -885,29 +867,29 @@ "name": "stdout", "output_type": "stream", "text": [ - " 26.216 ns (2 allocations: 80 bytes)\n" + " 27.766 ns (2 allocations: 80 bytes)\n" ] }, { "data": { "text/html": [ - "

DataFrameRow

1 rows × 20 columns (omitted printing of 12 columns)

x1x2x3x4x5x6x7x8
Float64Float64Float64Float64Float64Float64Float64Float64
10.4694270.8936050.3483010.1898530.6026940.4270640.1200580.403865
" + "

DataFrameRow

1 rows × 20 columns

x1x2x3x4x5x6x7x8x9x10x11x12x13x14x15x16x17x18x19x20
Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64
10.6912380.5029410.1132970.3287380.133780.4412780.6850020.05382190.07617980.7692350.2842910.1713520.7545630.6487360.09532250.7758890.8410430.3119330.568140.577725
" ], "text/latex": [ - "\\begin{tabular}{r|ccccccccc}\n", - "\t& x1 & x2 & x3 & x4 & x5 & x6 & x7 & x8 & \\\\\n", + "\\begin{tabular}{r|cccccccccccccccccccc}\n", + "\t& x1 & x2 & x3 & x4 & x5 & x6 & x7 & x8 & x9 & x10 & x11 & x12 & x13 & x14 & x15 & x16 & x17 & x18 & x19 & x20\\\\\n", "\t\\hline\n", - "\t& Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & \\\\\n", + "\t& Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64\\\\\n", "\t\\hline\n", - "\t1 & 0.469427 & 0.893605 & 0.348301 & 0.189853 & 0.602694 & 0.427064 & 0.120058 & 0.403865 & $\\dots$ \\\\\n", + "\t1 & 0.691238 & 0.502941 & 0.113297 & 0.328738 & 0.13378 & 0.441278 & 0.685002 & 0.0538219 & 0.0761798 & 0.769235 & 0.284291 & 0.171352 & 0.754563 & 0.648736 & 0.0953225 & 0.775889 & 0.841043 & 0.311933 & 0.56814 & 0.577725 \\\\\n", "\\end{tabular}\n" ], "text/plain": [ - "DataFrameRow. Omitted printing of 14 columns\n", - "│ Row │ x1 │ x2 │ x3 │ x4 │ x5 │ x6 │\n", - "│ │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │\n", - "├─────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤\n", - "│ 1 │ 0.469427 │ 0.893605 │ 0.348301 │ 0.189853 │ 0.602694 │ 0.427064 │" + "DataFrameRow\n", + "│ Row │ x1 │ x2 │ x3 │ x4 │ x5 │ x6 │ x7 │ x8 │ x9 │ x10 │ x11 │ x12 │ x13 │ x14 │ x15 │ x16 │ x17 │ x18 │ x19 │ x20 │\n", + "│ │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │\n", + "├─────┼──────────┼──────────┼──────────┼──────────┼─────────┼──────────┼──────────┼───────────┼───────────┼──────────┼──────────┼──────────┼──────────┼──────────┼───────────┼──────────┼──────────┼──────────┼─────────┼──────────┤\n", + "│ 1 │ 0.691238 │ 0.502941 │ 0.113297 │ 0.328738 │ 0.13378 │ 0.441278 │ 0.685002 │ 0.0538219 │ 0.0761798 │ 0.769235 │ 0.284291 │ 0.171352 │ 0.754563 │ 0.648736 │ 0.0953225 │ 0.775889 │ 0.841043 │ 0.311933 │ 0.56814 │ 0.577725 │" ] }, "execution_count": 22, @@ -928,29 +910,29 @@ "name": "stdout", "output_type": "stream", "text": [ - " 26.837 ns (2 allocations: 96 bytes)\n" + " 30.614 ns (2 allocations: 96 bytes)\n" ] }, { "data": { "text/html": [ - "

1 rows × 20 columns (omitted printing of 12 columns)

x1x2x3x4x5x6x7x8
Float64Float64Float64Float64Float64Float64Float64Float64
10.4694270.8936050.3483010.1898530.6026940.4270640.1200580.403865
" + "

1 rows × 20 columns

x1x2x3x4x5x6x7x8x9x10x11x12x13x14x15x16x17x18x19x20
Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64Float64
10.6912380.5029410.1132970.3287380.133780.4412780.6850020.05382190.07617980.7692350.2842910.1713520.7545630.6487360.09532250.7758890.8410430.3119330.568140.577725
" ], "text/latex": [ - "\\begin{tabular}{r|ccccccccc}\n", - "\t& x1 & x2 & x3 & x4 & x5 & x6 & x7 & x8 & \\\\\n", + "\\begin{tabular}{r|cccccccccccccccccccc}\n", + "\t& x1 & x2 & x3 & x4 & x5 & x6 & x7 & x8 & x9 & x10 & x11 & x12 & x13 & x14 & x15 & x16 & x17 & x18 & x19 & x20\\\\\n", "\t\\hline\n", - "\t& Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & \\\\\n", + "\t& Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64 & Float64\\\\\n", "\t\\hline\n", - "\t1 & 0.469427 & 0.893605 & 0.348301 & 0.189853 & 0.602694 & 0.427064 & 0.120058 & 0.403865 & $\\dots$ \\\\\n", + "\t1 & 0.691238 & 0.502941 & 0.113297 & 0.328738 & 0.13378 & 0.441278 & 0.685002 & 0.0538219 & 0.0761798 & 0.769235 & 0.284291 & 0.171352 & 0.754563 & 0.648736 & 0.0953225 & 0.775889 & 0.841043 & 0.311933 & 0.56814 & 0.577725 \\\\\n", "\\end{tabular}\n" ], "text/plain": [ - "1×20 SubDataFrame. Omitted printing of 14 columns\n", - "│ Row │ x1 │ x2 │ x3 │ x4 │ x5 │ x6 │\n", - "│ │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │\n", - "├─────┼──────────┼──────────┼──────────┼──────────┼──────────┼──────────┤\n", - "│ 1 │ 0.469427 │ 0.893605 │ 0.348301 │ 0.189853 │ 0.602694 │ 0.427064 │" + "1×20 SubDataFrame\n", + "│ Row │ x1 │ x2 │ x3 │ x4 │ x5 │ x6 │ x7 │ x8 │ x9 │ x10 │ x11 │ x12 │ x13 │ x14 │ x15 │ x16 │ x17 │ x18 │ x19 │ x20 │\n", + "│ │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │\n", + "├─────┼──────────┼──────────┼──────────┼──────────┼─────────┼──────────┼──────────┼───────────┼───────────┼──────────┼──────────┼──────────┼──────────┼──────────┼───────────┼──────────┼──────────┼──────────┼─────────┼──────────┤\n", + "│ 1 │ 0.691238 │ 0.502941 │ 0.113297 │ 0.328738 │ 0.13378 │ 0.441278 │ 0.685002 │ 0.0538219 │ 0.0761798 │ 0.769235 │ 0.284291 │ 0.171352 │ 0.754563 │ 0.648736 │ 0.0953225 │ 0.775889 │ 0.841043 │ 0.311933 │ 0.56814 │ 0.577725 │" ] }, "execution_count": 23, @@ -964,10 +946,14 @@ } ], "metadata": { + "@webio": { + "lastCommId": null, + "lastKernelId": null + }, "kernelspec": { - "display_name": "Julia 1.0.3", + "display_name": "Julia 1.1.0", "language": "julia", - "name": "julia-1.0" + "name": "julia-1.1" }, "language_info": { "file_extension": ".jl", diff --git a/12_pitfalls.ipynb b/12_pitfalls.ipynb index de4c07f..5c7fb38 100644 --- a/12_pitfalls.ipynb +++ b/12_pitfalls.ipynb @@ -5,7 +5,7 @@ "metadata": {}, "source": [ "# Introduction to DataFrames\n", - "**[Bogumił Kamiński](http://bogumilkaminski.pl/about/), April 27, 2019**" + "**[Bogumił Kamiński](http://bogumilkaminski.pl/about/), July 16, 2019**" ] }, { @@ -39,7 +39,7 @@ { "data": { "text/html": [ - "

3 rows × 5 columns

x1x2x3x4x5
Float64Float64Float64Float64Float64
10.8456930.4311330.402370.3785320.505309
20.3356370.3633090.8089610.2531460.642472
30.8367060.9824970.5412130.001896480.989832
" + "

3 rows × 5 columns

x1x2x3x4x5
Float64Float64Float64Float64Float64
10.4925590.2431830.9667030.6931840.92395
20.09285410.6659560.3552910.2499620.347599
30.5526640.4031560.3518790.9633440.760738
" ], "text/latex": [ "\\begin{tabular}{r|ccccc}\n", @@ -47,19 +47,19 @@ "\t\\hline\n", "\t& Float64 & Float64 & Float64 & Float64 & Float64\\\\\n", "\t\\hline\n", - "\t1 & 0.845693 & 0.431133 & 0.40237 & 0.378532 & 0.505309 \\\\\n", - "\t2 & 0.335637 & 0.363309 & 0.808961 & 0.253146 & 0.642472 \\\\\n", - "\t3 & 0.836706 & 0.982497 & 0.541213 & 0.00189648 & 0.989832 \\\\\n", + "\t1 & 0.492559 & 0.243183 & 0.966703 & 0.693184 & 0.92395 \\\\\n", + "\t2 & 0.0928541 & 0.665956 & 0.355291 & 0.249962 & 0.347599 \\\\\n", + "\t3 & 0.552664 & 0.403156 & 0.351879 & 0.963344 & 0.760738 \\\\\n", "\\end{tabular}\n" ], "text/plain": [ "3×5 DataFrame\n", - "│ Row │ x1 │ x2 │ x3 │ x4 │ x5 │\n", - "│ │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │\n", - "├─────┼──────────┼──────────┼──────────┼────────────┼──────────┤\n", - "│ 1 │ 0.845693 │ 0.431133 │ 0.40237 │ 0.378532 │ 0.505309 │\n", - "│ 2 │ 0.335637 │ 0.363309 │ 0.808961 │ 0.253146 │ 0.642472 │\n", - "│ 3 │ 0.836706 │ 0.982497 │ 0.541213 │ 0.00189648 │ 0.989832 │" + "│ Row │ x1 │ x2 │ x3 │ x4 │ x5 │\n", + "│ │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │\n", + "├─────┼───────────┼──────────┼──────────┼──────────┼──────────┤\n", + "│ 1 │ 0.492559 │ 0.243183 │ 0.966703 │ 0.693184 │ 0.92395 │\n", + "│ 2 │ 0.0928541 │ 0.665956 │ 0.355291 │ 0.249962 │ 0.347599 │\n", + "│ 3 │ 0.552664 │ 0.403156 │ 0.351879 │ 0.963344 │ 0.760738 │" ] }, "execution_count": 2, @@ -151,7 +151,7 @@ } ], "source": [ - "all(x[i] === y[i] for i in ncol(x)) # the columns are also not the same" + "all(x[!, i] === y[!, i] for i in ncol(x)) # the columns are also not the same" ] }, { @@ -211,7 +211,7 @@ } ], "source": [ - "y === df[:y] # different object" + "y === df.y # different object" ] }, { @@ -231,7 +231,7 @@ } ], "source": [ - "typeof(x), typeof(df[:x]) # range is converted to a vector" + "typeof(x), typeof(df.x) # range is converted to a vector" ] }, { @@ -338,7 +338,7 @@ } ], "source": [ - "select(df, :y)[1] === y # not the same" + "select(df, :y)[!, 1] === y # not the same" ] }, { @@ -358,7 +358,7 @@ } ], "source": [ - "select(df, :y, copycols=false)[1] === y # the same" + "select(df, :y, copycols=false)[!, 1] === y # the same" ] }, { @@ -500,7 +500,7 @@ } ], "source": [ - "x[1:3, 1]=[2,2,2]\n", + "x[1:3, 1] = [2,2,2]\n", "g # well - it is wrong now, g is only a view" ] }, @@ -596,18 +596,18 @@ " [1] throw_boundserror(::Array{Int64,1}, ::Tuple{UnitRange{Int64}}) at .\\abstractarray.jl:484", " [2] checkbounds at .\\abstractarray.jl:449 [inlined]", " [3] view(::Array{Int64,1}, ::UnitRange{Int64}) at .\\subarray.jl:155", - " [4] view at C:\\Users\\bogum\\.julia\\packages\\DataFrames\\Wvy9E\\src\\subdataframe\\subdataframe.jl:83 [inlined]", - " [5] getindex at C:\\Users\\bogum\\.julia\\packages\\DataFrames\\Wvy9E\\src\\subdataframe\\subdataframe.jl:101 [inlined]", - " [6] getindex at C:\\Users\\bogum\\.julia\\packages\\DataFrames\\Wvy9E\\src\\abstractdataframe\\iteration.jl:159 [inlined]", + " [4] view at C:\\Users\\bogum\\.julia\\packages\\DataFrames\\GoFnP\\src\\subdataframe\\subdataframe.jl:90 [inlined]", + " [5] getindex at C:\\Users\\bogum\\.julia\\packages\\DataFrames\\GoFnP\\src\\subdataframe\\subdataframe.jl:127 [inlined]", + " [6] getindex at C:\\Users\\bogum\\.julia\\packages\\DataFrames\\GoFnP\\src\\abstractdataframe\\iteration.jl:159 [inlined]", " [7] iterate(::DataFrames.DataFrameColumns{SubDataFrame{DataFrame,DataFrames.Index,UnitRange{Int64}},Pair{Symbol,AbstractArray{T,1} where T}}, ::Tuple{Base.OneTo{Int64}}) at .\\abstractarray.jl:860", " [8] iterate at .\\abstractarray.jl:858 [inlined]", - " [9] getmaxwidths(::SubDataFrame{DataFrame,DataFrames.Index,UnitRange{Int64}}, ::IOContext{Base.GenericIOBuffer{Array{UInt8,1}}}, ::UnitRange{Int64}, ::UnitRange{Int64}, ::Symbol, ::Nothing) at C:\\Users\\bogum\\.julia\\packages\\DataFrames\\Wvy9E\\src\\abstractdataframe\\show.jl:107", - " [10] #_show#286(::Bool, ::Bool, ::Bool, ::Symbol, ::Bool, ::Nothing, ::Function, ::IOContext{Base.GenericIOBuffer{Array{UInt8,1}}}, ::SubDataFrame{DataFrame,DataFrames.Index,UnitRange{Int64}}) at C:\\Users\\bogum\\.julia\\packages\\DataFrames\\Wvy9E\\src\\abstractdataframe\\show.jl:532", + " [9] getmaxwidths(::SubDataFrame{DataFrame,DataFrames.Index,UnitRange{Int64}}, ::IOContext{Base.GenericIOBuffer{Array{UInt8,1}}}, ::UnitRange{Int64}, ::UnitRange{Int64}, ::Symbol, ::Nothing) at C:\\Users\\bogum\\.julia\\packages\\DataFrames\\GoFnP\\src\\abstractdataframe\\show.jl:107", + " [10] #_show#302(::Bool, ::Bool, ::Bool, ::Symbol, ::Bool, ::Nothing, ::Function, ::IOContext{Base.GenericIOBuffer{Array{UInt8,1}}}, ::SubDataFrame{DataFrame,DataFrames.Index,UnitRange{Int64}}) at C:\\Users\\bogum\\.julia\\packages\\DataFrames\\GoFnP\\src\\abstractdataframe\\show.jl:536", " [11] #_show at .\\none:0 [inlined]", - " [12] #show#287 at C:\\Users\\bogum\\.julia\\packages\\DataFrames\\Wvy9E\\src\\abstractdataframe\\show.jl:604 [inlined]", + " [12] #show#303 at C:\\Users\\bogum\\.julia\\packages\\DataFrames\\GoFnP\\src\\abstractdataframe\\show.jl:608 [inlined]", " [13] #show at .\\none:0 [inlined]", - " [14] #show#300(::Bool, ::Bool, ::Bool, ::Symbol, ::Bool, ::Function, ::IOContext{Base.GenericIOBuffer{Array{UInt8,1}}}, ::MIME{Symbol(\"text/plain\")}, ::SubDataFrame{DataFrame,DataFrames.Index,UnitRange{Int64}}) at C:\\Users\\bogum\\.julia\\packages\\DataFrames\\Wvy9E\\src\\abstractdataframe\\io.jl:53", - " [15] show(::IOContext{Base.GenericIOBuffer{Array{UInt8,1}}}, ::MIME{Symbol(\"text/plain\")}, ::SubDataFrame{DataFrame,DataFrames.Index,UnitRange{Int64}}) at C:\\Users\\bogum\\.julia\\packages\\DataFrames\\Wvy9E\\src\\abstractdataframe\\io.jl:53", + " [14] #show#316(::Bool, ::Bool, ::Bool, ::Symbol, ::Bool, ::Function, ::IOContext{Base.GenericIOBuffer{Array{UInt8,1}}}, ::MIME{Symbol(\"text/plain\")}, ::SubDataFrame{DataFrame,DataFrames.Index,UnitRange{Int64}}) at C:\\Users\\bogum\\.julia\\packages\\DataFrames\\GoFnP\\src\\abstractdataframe\\io.jl:53", + " [15] show(::IOContext{Base.GenericIOBuffer{Array{UInt8,1}}}, ::MIME{Symbol(\"text/plain\")}, ::SubDataFrame{DataFrame,DataFrames.Index,UnitRange{Int64}}) at C:\\Users\\bogum\\.julia\\packages\\DataFrames\\GoFnP\\src\\abstractdataframe\\io.jl:53", " [16] limitstringmime(::MIME{Symbol(\"text/plain\")}, ::SubDataFrame{DataFrame,DataFrames.Index,UnitRange{Int64}}) at C:\\Users\\bogum\\.julia\\packages\\IJulia\\gI2uA\\src\\inline.jl:37", " [17] display_mimestring(::MIME{Symbol(\"text/plain\")}, ::SubDataFrame{DataFrame,DataFrames.Index,UnitRange{Int64}}) at C:\\Users\\bogum\\.julia\\packages\\IJulia\\gI2uA\\src\\display.jl:67", " [18] display_dict(::SubDataFrame{DataFrame,DataFrames.Index,UnitRange{Int64}}) at C:\\Users\\bogum\\.julia\\packages\\IJulia\\gI2uA\\src\\display.jl:96", @@ -629,148 +629,13 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Remember that you can filter columns of a `DataFrame` using booleans" + "### Single column selection for `DataFrame` creates aliases with `!` and `getproperty` syntax and copies with `:`" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "

5 rows × 5 columns

x1x2x3x4x5
Float64Float64Float64Float64Float64
10.2360330.2109680.5557510.2094720.0769509
20.3465170.9519160.4371080.2513790.640396
30.3127070.9999050.4247180.02037490.873544
40.007909280.2516620.7732230.2877020.278582
50.4886130.9866660.281190.8595120.751313
" - ], - "text/latex": [ - "\\begin{tabular}{r|ccccc}\n", - "\t& x1 & x2 & x3 & x4 & x5\\\\\n", - "\t\\hline\n", - "\t& Float64 & Float64 & Float64 & Float64 & Float64\\\\\n", - "\t\\hline\n", - "\t1 & 0.236033 & 0.210968 & 0.555751 & 0.209472 & 0.0769509 \\\\\n", - "\t2 & 0.346517 & 0.951916 & 0.437108 & 0.251379 & 0.640396 \\\\\n", - "\t3 & 0.312707 & 0.999905 & 0.424718 & 0.0203749 & 0.873544 \\\\\n", - "\t4 & 0.00790928 & 0.251662 & 0.773223 & 0.287702 & 0.278582 \\\\\n", - "\t5 & 0.488613 & 0.986666 & 0.28119 & 0.859512 & 0.751313 \\\\\n", - "\\end{tabular}\n" - ], - "text/plain": [ - "5×5 DataFrame\n", - "│ Row │ x1 │ x2 │ x3 │ x4 │ x5 │\n", - "│ │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │\n", - "├─────┼────────────┼──────────┼──────────┼───────────┼───────────┤\n", - "│ 1 │ 0.236033 │ 0.210968 │ 0.555751 │ 0.209472 │ 0.0769509 │\n", - "│ 2 │ 0.346517 │ 0.951916 │ 0.437108 │ 0.251379 │ 0.640396 │\n", - "│ 3 │ 0.312707 │ 0.999905 │ 0.424718 │ 0.0203749 │ 0.873544 │\n", - "│ 4 │ 0.00790928 │ 0.251662 │ 0.773223 │ 0.287702 │ 0.278582 │\n", - "│ 5 │ 0.488613 │ 0.986666 │ 0.28119 │ 0.859512 │ 0.751313 │" - ] - }, - "execution_count": 20, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "using Random\n", - "Random.seed!(1)\n", - "x = DataFrame(rand(5, 5))" - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "

5 rows × 2 columns

x1x4
Float64Float64
10.2360330.209472
20.3465170.251379
30.3127070.0203749
40.007909280.287702
50.4886130.859512
" - ], - "text/latex": [ - "\\begin{tabular}{r|cc}\n", - "\t& x1 & x4\\\\\n", - "\t\\hline\n", - "\t& Float64 & Float64\\\\\n", - "\t\\hline\n", - "\t1 & 0.236033 & 0.209472 \\\\\n", - "\t2 & 0.346517 & 0.251379 \\\\\n", - "\t3 & 0.312707 & 0.0203749 \\\\\n", - "\t4 & 0.00790928 & 0.287702 \\\\\n", - "\t5 & 0.488613 & 0.859512 \\\\\n", - "\\end{tabular}\n" - ], - "text/plain": [ - "5×2 DataFrame\n", - "│ Row │ x1 │ x4 │\n", - "│ │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │\n", - "├─────┼────────────┼───────────┤\n", - "│ 1 │ 0.236033 │ 0.209472 │\n", - "│ 2 │ 0.346517 │ 0.251379 │\n", - "│ 3 │ 0.312707 │ 0.0203749 │\n", - "│ 4 │ 0.00790928 │ 0.287702 │\n", - "│ 5 │ 0.488613 │ 0.859512 │" - ] - }, - "execution_count": 21, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "x[x[:x1] .< 0.25] # well - we have filtered columns not rows by accident as you can select columns using booleans" - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "

2 rows × 5 columns

x1x2x3x4x5
Float64Float64Float64Float64Float64
10.2360330.2109680.5557510.2094720.0769509
20.007909280.2516620.7732230.2877020.278582
" - ], - "text/latex": [ - "\\begin{tabular}{r|ccccc}\n", - "\t& x1 & x2 & x3 & x4 & x5\\\\\n", - "\t\\hline\n", - "\t& Float64 & Float64 & Float64 & Float64 & Float64\\\\\n", - "\t\\hline\n", - "\t1 & 0.236033 & 0.210968 & 0.555751 & 0.209472 & 0.0769509 \\\\\n", - "\t2 & 0.00790928 & 0.251662 & 0.773223 & 0.287702 & 0.278582 \\\\\n", - "\\end{tabular}\n" - ], - "text/plain": [ - "2×5 DataFrame\n", - "│ Row │ x1 │ x2 │ x3 │ x4 │ x5 │\n", - "│ │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │ \u001b[90mFloat64\u001b[39m │\n", - "├─────┼────────────┼──────────┼──────────┼──────────┼───────────┤\n", - "│ 1 │ 0.236033 │ 0.210968 │ 0.555751 │ 0.209472 │ 0.0769509 │\n", - "│ 2 │ 0.00790928 │ 0.251662 │ 0.773223 │ 0.287702 │ 0.278582 │" - ] - }, - "execution_count": 22, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "x[x[:x1] .< 0.25, :] # probably this is what we wanted" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Single column selection for `DataFrame` creates aliases unless explicitly copied" - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "metadata": {}, "outputs": [ { "data": { @@ -833,10 +698,10 @@ ], "source": [ "x = DataFrame(a=1:3)\n", - "x[:b] = x[1] # alias\n", - "x[:c] = x[:, 1] # copy\n", - "x[:d] = x[1][:] # copy\n", - "x[:e] = copy(x[1]) # explicit copy\n", + "x.b = x[!, 1] # alias\n", + "x.c = x[:, 1] # copy\n", + "x.d = x[!, 1][:] # copy\n", + "x.e = copy(x[!, 1]) # explicit copy\n", "display(x)\n", "x[1,1] = 100\n", "display(x)" @@ -844,10 +709,14 @@ } ], "metadata": { + "@webio": { + "lastCommId": null, + "lastKernelId": null + }, "kernelspec": { - "display_name": "Julia 1.0.3", + "display_name": "Julia 1.1.0", "language": "julia", - "name": "julia-1.0" + "name": "julia-1.1" }, "language_info": { "file_extension": ".jl", diff --git a/13_extras.ipynb b/13_extras.ipynb index ea578c5..a525167 100644 --- a/13_extras.ipynb +++ b/13_extras.ipynb @@ -5,7 +5,7 @@ "metadata": {}, "source": [ "# Introduction to DataFrames\n", - "**[Bogumił Kamiński](http://bogumilkaminski.pl/about/), April 27, 2019**" + "**[Bogumił Kamiński](http://bogumilkaminski.pl/about/), July 16, 2019**" ] }, { @@ -33,12 +33,12 @@ "data": { "text/plain": [ "4×3 Named Array{Int64,2}\n", - "a ╲ b │ x y z\n", - "──────┼───────────\n", - "'a' │ 71 87 98\n", - "'b' │ 96 80 83\n", - "'c' │ 83 75 79\n", - "'d' │ 75 85 88" + "a ╲ b │ x y z\n", + "──────┼──────────────\n", + "'a' │ 91 78 94\n", + "'b' │ 73 92 87\n", + "'c' │ 78 102 85\n", + "'d' │ 71 76 73" ] }, "execution_count": 2, @@ -60,7 +60,7 @@ { "data": { "text/plain": [ - "(71, 83)" + "(91, 87)" ] }, "execution_count": 3, @@ -83,10 +83,10 @@ "4×3 Named Array{Float64,2}\n", "a ╲ b │ x y z\n", "──────┼─────────────────────────────\n", - "'a' │ 0.277344 0.339844 0.382813\n", - "'b' │ 0.370656 0.30888 0.320463\n", - "'c' │ 0.350211 0.316456 0.333333\n", - "'d' │ 0.302419 0.342742 0.354839" + "'a' │ 0.346008 0.296578 0.357414\n", + "'b' │ 0.289683 0.365079 0.345238\n", + "'c' │ 0.29434 0.384906 0.320755\n", + "'d' │ 0.322727 0.345455 0.331818" ] }, "execution_count": 4, @@ -109,10 +109,10 @@ "4×3 Named Array{Float64,2}\n", "a ╲ b │ x y z\n", "──────┼─────────────────────────────\n", - "'a' │ 0.218462 0.266055 0.281609\n", - "'b' │ 0.295385 0.244648 0.238506\n", - "'c' │ 0.255385 0.229358 0.227011\n", - "'d' │ 0.230769 0.259939 0.252874" + "'a' │ 0.290735 0.224138 0.277286\n", + "'b' │ 0.233227 0.264368 0.256637\n", + "'c' │ 0.249201 0.293103 0.250737\n", + "'d' │ 0.226837 0.218391 0.215339" ] }, "execution_count": 5, @@ -135,9 +135,9 @@ "4-element Named Array{Int64,1}\n", "Dim1 │ \n", "──────┼──\n", - "3 │ 4\n", + "3 │ 1\n", "1 │ 2\n", - "2 │ 4\n", + "2 │ 7\n", "4 │ 0" ] }, @@ -214,8 +214,8 @@ "2×2 Named Array{Int64,2}\n", "a ╲ b │ 5 6\n", "──────┼─────────\n", - "3 │ 258 258\n", - "4 │ 254 230" + "3 │ 233 238\n", + "4 │ 276 253" ] }, "execution_count": 9, @@ -242,7 +242,7 @@ "", "Stacktrace:", " [1] getindex at .\\array.jl:730 [inlined]", - " [2] getindex(::NamedArrays.NamedArray{Int64,2,Array{Int64,2},Tuple{OrderedCollections.OrderedDict{Int64,Int64},OrderedCollections.OrderedDict{Int64,Int64}}}, ::Int64, ::Int64) at C:\\Users\\bogum\\.julia\\packages\\NamedArrays\\uMdmN\\src\\index.jl:17", + " [2] getindex(::NamedArrays.NamedArray{Int64,2,Array{Int64,2},Tuple{OrderedCollections.OrderedDict{Int64,Int64},OrderedCollections.OrderedDict{Int64,Int64}}}, ::Int64, ::Int64) at C:\\Users\\bogum\\.julia\\packages\\NamedArrays\\d4lJL\\src\\index.jl:17", " [3] top-level scope at In[10]:1" ] } @@ -259,7 +259,7 @@ { "data": { "text/plain": [ - "258" + "233" ] }, "execution_count": 11, @@ -473,7 +473,7 @@ ], "source": [ "df2 = DataFrame(x=1:3, y=4:6, z=7:9)\n", - "@with(df2, cols(2:3)) # cols(expression) is translated to df2[expression]" + "@with(df2, cols(2:3)) # cols(expression) selects given columns" ] }, { @@ -572,37 +572,37 @@ { "data": { "text/html": [ - "

8 rows × 4 columns

xyza
Int64Int64BoolInt64
121true1
242false1
363true1
484false1
5105true1
6126false1
7147true1
8168false1
" + "

8 rows × 3 columns

xyz
Int64Int64Bool
121true
242false
363true
484false
5105true
6126false
7147true
8168false
" ], "text/latex": [ - "\\begin{tabular}{r|cccc}\n", - "\t& x & y & z & a\\\\\n", + "\\begin{tabular}{r|ccc}\n", + "\t& x & y & z\\\\\n", "\t\\hline\n", - "\t& Int64 & Int64 & Bool & Int64\\\\\n", + "\t& Int64 & Int64 & Bool\\\\\n", "\t\\hline\n", - "\t1 & 2 & 1 & true & 1 \\\\\n", - "\t2 & 4 & 2 & false & 1 \\\\\n", - "\t3 & 6 & 3 & true & 1 \\\\\n", - "\t4 & 8 & 4 & false & 1 \\\\\n", - "\t5 & 10 & 5 & true & 1 \\\\\n", - "\t6 & 12 & 6 & false & 1 \\\\\n", - "\t7 & 14 & 7 & true & 1 \\\\\n", - "\t8 & 16 & 8 & false & 1 \\\\\n", + "\t1 & 2 & 1 & true \\\\\n", + "\t2 & 4 & 2 & false \\\\\n", + "\t3 & 6 & 3 & true \\\\\n", + "\t4 & 8 & 4 & false \\\\\n", + "\t5 & 10 & 5 & true \\\\\n", + "\t6 & 12 & 6 & false \\\\\n", + "\t7 & 14 & 7 & true \\\\\n", + "\t8 & 16 & 8 & false \\\\\n", "\\end{tabular}\n" ], "text/plain": [ - "8×4 DataFrame\n", - "│ Row │ x │ y │ z │ a │\n", - "│ │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mBool\u001b[39m │ \u001b[90mInt64\u001b[39m │\n", - "├─────┼───────┼───────┼───────┼───────┤\n", - "│ 1 │ 2 │ 1 │ true │ 1 │\n", - "│ 2 │ 4 │ 2 │ false │ 1 │\n", - "│ 3 │ 6 │ 3 │ true │ 1 │\n", - "│ 4 │ 8 │ 4 │ false │ 1 │\n", - "│ 5 │ 10 │ 5 │ true │ 1 │\n", - "│ 6 │ 12 │ 6 │ false │ 1 │\n", - "│ 7 │ 14 │ 7 │ true │ 1 │\n", - "│ 8 │ 16 │ 8 │ false │ 1 │" + "8×3 DataFrame\n", + "│ Row │ x │ y │ z │\n", + "│ │ \u001b[90mInt64\u001b[39m │ \u001b[90mInt64\u001b[39m │ \u001b[90mBool\u001b[39m │\n", + "├─────┼───────┼───────┼───────┤\n", + "│ 1 │ 2 │ 1 │ true │\n", + "│ 2 │ 4 │ 2 │ false │\n", + "│ 3 │ 6 │ 3 │ true │\n", + "│ 4 │ 8 │ 4 │ false │\n", + "│ 5 │ 10 │ 5 │ true │\n", + "│ 6 │ 12 │ 6 │ false │\n", + "│ 7 │ 14 │ 7 │ true │\n", + "│ 8 │ 16 │ 8 │ false │" ] }, "execution_count": 20, @@ -611,41 +611,13 @@ } ], "source": [ - "@transform(df, a=1, x = 2*:x, y=:x) # create a new DataFrame adding columns based on the old one" + "@transform(df, x = 2*:x, y=:x) # create a new DataFrame adding columns based on the old one" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, - "outputs": [ - { - "ename": "ArgumentError", - "evalue": "ArgumentError: column name :a not found in the data frame; existing most similar names are: :x, :y and :z", - "output_type": "error", - "traceback": [ - "ArgumentError: column name :a not found in the data frame; existing most similar names are: :x, :y and :z", - "", - "Stacktrace:", - " [1] lookupname at C:\\Users\\bogum\\.julia\\packages\\DataFrames\\Wvy9E\\src\\other\\index.jl:170 [inlined]", - " [2] getindex at C:\\Users\\bogum\\.julia\\packages\\DataFrames\\Wvy9E\\src\\other\\index.jl:176 [inlined]", - " [3] getindex(::DataFrame, ::Symbol) at C:\\Users\\bogum\\.julia\\packages\\DataFrames\\Wvy9E\\src\\dataframe\\dataframe.jl:295", - " [4] (::getfield(Main, Symbol(\"##16#18\")))(::DataFrame) at C:\\Users\\bogum\\.julia\\packages\\DataFramesMeta\\Ykidf\\src\\DataFramesMeta.jl:73", - " [5] #transform#9(::Base.Iterators.Pairs{Symbol,Function,Tuple{Symbol,Symbol},NamedTuple{(:a, :b),Tuple{getfield(Main, Symbol(\"##15#17\")),getfield(Main, Symbol(\"##16#18\"))}}}, ::Function, ::DataFrame) at C:\\Users\\bogum\\.julia\\packages\\DataFramesMeta\\Ykidf\\src\\DataFramesMeta.jl:384", - " [6] (::getfield(DataFramesMeta, Symbol(\"#kw##transform\")))(::NamedTuple{(:a, :b),Tuple{getfield(Main, Symbol(\"##15#17\")),getfield(Main, Symbol(\"##16#18\"))}}, ::typeof(DataFramesMeta.transform), ::DataFrame) at .\\none:0", - " [7] top-level scope at C:\\Users\\bogum\\.julia\\packages\\DataFramesMeta\\Ykidf\\src\\DataFramesMeta.jl:478", - " [8] top-level scope at In[21]:1" - ] - } - ], - "source": [ - "@transform(df, a=1, b=:a) # old DataFrame is used and :a is not present there" - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "metadata": {}, "outputs": [ { "data": { @@ -683,7 +655,7 @@ "│ 8 │ 1 │ 'a' │ true │" ] }, - "execution_count": 22, + "execution_count": 21, "metadata": {}, "output_type": "execute_result" } @@ -694,7 +666,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 22, "metadata": {}, "outputs": [ { @@ -725,7 +697,7 @@ "│ 4 │ true │ 3 │ 9 │" ] }, - "execution_count": 23, + "execution_count": 22, "metadata": {}, "output_type": "execute_result" } @@ -738,31 +710,6 @@ " select(:z, :x, :x²)" ] }, - { - "cell_type": "code", - "execution_count": 24, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "4-element Array{Int64,1}:\n", - " 1\n", - " 2\n", - " 3\n", - " 4" - ] - }, - "execution_count": 24, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "f(df, col) = df[col] # you can define your own functions and put them in the chain\n", - "@linq df |> where(:x .<= 4) |> f(:x)" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -772,7 +719,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 23, "metadata": {}, "outputs": [ { @@ -828,7 +775,7 @@ "│ 3 │ 12 │ 'd' │" ] }, - "execution_count": 25, + "execution_count": 23, "metadata": {}, "output_type": "execute_result" } @@ -840,7 +787,7 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 24, "metadata": {}, "outputs": [ { @@ -871,7 +818,7 @@ "│ 4 │ 'd' │ 4 │ 12 │ 8.0 │" ] }, - "execution_count": 26, + "execution_count": 24, "metadata": {}, "output_type": "execute_result" } @@ -883,7 +830,7 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 25, "metadata": {}, "outputs": [ { @@ -914,7 +861,7 @@ "│ 4 │ 'd' │ 4 │ 12 │ 8.0 │" ] }, - "execution_count": 27, + "execution_count": 25, "metadata": {}, "output_type": "execute_result" } @@ -925,7 +872,7 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 26, "metadata": {}, "outputs": [ { @@ -981,7 +928,7 @@ "│ 3 │ 12 │ 'd' │" ] }, - "execution_count": 28, + "execution_count": 26, "metadata": {}, "output_type": "execute_result" } @@ -992,7 +939,7 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 27, "metadata": {}, "outputs": [ { @@ -1048,19 +995,18 @@ "│ 3 │ 9 │ 'a' │" ] }, - "execution_count": 29, + "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "@orderby(g, -sum(:a)) # order groups on aggregate conditions\n", - "# this fails but should be fixed in the future" + "@orderby(g, -sum(:a)) # order groups on aggregate conditions" ] }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 28, "metadata": {}, "outputs": [ { @@ -1107,7 +1053,7 @@ "│ 12 │ 12 │ 'd' │ 8.0 │ 4.0 │" ] }, - "execution_count": 30, + "execution_count": 28, "metadata": {}, "output_type": "execute_result" } @@ -1118,7 +1064,7 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 29, "metadata": {}, "outputs": [ { @@ -1165,7 +1111,7 @@ "│ 12 │ 12 │ 'd' │" ] }, - "execution_count": 31, + "execution_count": 29, "metadata": {}, "output_type": "execute_result" } @@ -1176,7 +1122,7 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 30, "metadata": {}, "outputs": [ { @@ -1223,7 +1169,7 @@ "│ 12 │ 12 │ 'd' │" ] }, - "execution_count": 32, + "execution_count": 30, "metadata": {}, "output_type": "execute_result" } @@ -1234,7 +1180,7 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 31, "metadata": {}, "outputs": [ { @@ -1269,7 +1215,7 @@ "│ 6 │ 12 │ 'd' │" ] }, - "execution_count": 33, + "execution_count": 31, "metadata": {}, "output_type": "execute_result" } @@ -1287,7 +1233,7 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 32, "metadata": {}, "outputs": [ { @@ -1334,7 +1280,7 @@ "│ 12 │ 12 │ 4 │" ] }, - "execution_count": 34, + "execution_count": 32, "metadata": {}, "output_type": "execute_result" } @@ -1345,7 +1291,7 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": 33, "metadata": {}, "outputs": [ { @@ -1392,7 +1338,7 @@ "│ 12 │ 12 │ 4 │ yes │" ] }, - "execution_count": 35, + "execution_count": 33, "metadata": {}, "output_type": "execute_result" } @@ -1404,7 +1350,7 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": 34, "metadata": {}, "outputs": [ { @@ -1451,7 +1397,7 @@ "│ 12 │ 12 │ 4 │ yes │" ] }, - "execution_count": 36, + "execution_count": 34, "metadata": {}, "output_type": "execute_result" } @@ -1464,7 +1410,7 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": 35, "metadata": {}, "outputs": [ { @@ -1511,7 +1457,7 @@ "│ 12 │ 12 │ 4 │ yes │" ] }, - "execution_count": 37, + "execution_count": 35, "metadata": {}, "output_type": "execute_result" } @@ -1533,7 +1479,7 @@ }, { "cell_type": "code", - "execution_count": 38, + "execution_count": 36, "metadata": {}, "outputs": [], "source": [ @@ -1543,7 +1489,7 @@ }, { "cell_type": "code", - "execution_count": 39, + "execution_count": 37, "metadata": {}, "outputs": [], "source": [ @@ -1552,7 +1498,7 @@ }, { "cell_type": "code", - "execution_count": 40, + "execution_count": 38, "metadata": {}, "outputs": [], "source": [ @@ -1563,14 +1509,14 @@ }, { "cell_type": "code", - "execution_count": 41, + "execution_count": 39, "metadata": {}, "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAlgAAAGQCAIAAAD9V4nPAAAABmJLR0QA/wD/AP+gvaeTAAAgAElEQVR4nOy9eZwlR30n+I3M917dR1cJBDK2ASEB4rJsYBeBbdB8jDEM9iB7kQewWdZmB2aNjfHCzphZZjwYhsPGxgs2Y4zXHhaDMEiclgSIUwLdF5JaUkvdkrql7q6q7q7rVdV7mRm//SMyI+PKfEdl1asjvh99Wq/yRUZEHi++8f0dEYyI4OHh4eHhsV8RDLoDHh4eHh4eg4QnQg8PDw+PfQ1PhB4eHh4e+xqeCD08PDw89jU8EXp4eHh47Gt4IvTw8PDw2NfwROjh4eHhsa/hidDDw8PDY1/DE6GHh4eHx76GJ0IPDw8Pj32NbSXCVqt17733Ggc550mSbGc3PDYPIorjeNC98OgZURQNugsePSOOY78W5pZiW4nw8OHDr3nNa4yDGxsbq6ur29kNj80jjuPFxcVB98KjZ5w6dcoPqbsOS0tLfgazpfCmUQ8PDw+PfQ1PhB4eHh4e+xqeCD08PDw89jU8EXp4eHh47Gt4IvTw8PDw2NfwROjh4eHhsa/hidDDw8PDY1/DE6GHh4eHx76GJ0IPDw8Pj30NT4QeHh7V47/dwf/uPj7oXnh4dIXaoDvg4eGxB7GwQfWADboXHh5dwStCDw+PLYFf09Rjt8AToYeHR/UggudBj90CT4QeHh5bAq8IPXYLPBF6eHhUD4JXhB67Bp4IPTw8tgSeCD12CzwRenh4VA/Pgh67CJ4IPTw8tgTeR+ixW+CJ0MPDo3r4qFGPXYRdkFB/5MiRSy65ZNC92FY84QlPuPLKKwfdCw+PTcErQo/dgl1AhBsbG0tLS1/84hcH3ZFtwsmTJ9/85jcPuhceHpuCjxr12EXYBUQIYGho6MILLxx0L7YJR48eHXQXPDwqgCdCj90C7yP08PCoHkTeNOqxa+CJ0MPDw8NjX8MToYeHR/UgwMeNeuwWeCL08PCoHuSjRj12DzwRenh4bAk8D3rsFngi9PDwqB4+od5jF8EToYeHh4fHvoYnQg8Pj+rhfYQeuwieCKvEV7/61b/7u7+zj3/yk5/87Gc/u/398fAYIDwPeuwW7I6VZXYFkiT5yEc+8i//8i/2V69//etf+MIXXnLJJUNDQ9vfMQ+P7YdPqPfYRfCKsDJcdtllL3zhC0dGRuyvRkdHX/nKV1522WXb3ysPj0HB86DHboEnwn7w5je/+S/+4i/E59/5nd/5yEc+AuCf//mfL7roIgCXXXbZi1/84iRJFhcXzzvvvB//+McALrrooq985SsD7LNHVbjqGP2nm5NB92IXwBOhx27BbjWN/tmP+bUntumH9s7nBi8+m6lHfv3Xf/3973//H/7hH7ZarS9/+cvvfe97Adx0003ve9/7AFx66aVf+9rX/vzP//zuu+9+29ve9pznPAfA0572tBtuuGF7OuyxpTjdosMrg+7EjocPlvHYRditRPjSJ7KnTW5TW08eN49cfPHFb3jDG06ePHnjjTdeeOGF55xzDoC5ubknP/nJosDHPvaxn/u5nzv33HPf9ra3iSNPecpT5ubmtqnHHlsJP753A3+TPHYRdisRPv8s9vyzWOdyW4NGo/GqV73qK1/5yne/+903vOEN4uDk5KTkwmazmSTJY4891mq1hoeHAczPz09Obhd1e2wx/CjfDfxd8tgt8D7CPvEbv/Ebn/nMZ775zW++5jWvEUcuuOCCBx54AADn/I1vfOMHP/jBl7zkJe95z3vEt4cOHXrmM585sO56eGwvfNSoxy6CJ8I+8Uu/9Eu33HLLxRdfLHXer/zKr4i4mL/8y78866yzXvva137oQx+6/PLLr732WgB33XXXK1/5ykH22KM6+CG+I/wO9R67CLvVNDpwDA8PX3DBBdIuCuCtb33rr/7qr7797W9/xzveIY5MTEwIjUhEX/rSl3zU6J6BH+K7gb9LHrsFFSvCq6666oILLpienr7gggu+8Y1vVFv5zkEURbfeeuvRo0df/vKXy4PT09OvfvWrr7nmGrv8Nddc8+pXv3pqamob++jhMUh406jHLkKVipBz/vrXv/7zn//8y172sssvv/xNb3rTo48+WmH9Owdf/epX3/rWt37iE59oNBrq8d/7vd87cuSIXf6cc8558YtfvF2989ha+MSALuFvksduQZVEGMfxpz/96Ysvvnh1dXVoaGh6errCyncULrnkkksuucQ+PjIycsEFF9jHnQc9PPYwPAt67CJUSYSNRuOVr3zl6urq5OQkY0wEiRhYWFj45V/+ZfVIkiRE9LrXvU6GXxpYWlqifTYDJ6LTp08PuhdliKJoeXk5CPZjsNXqaq3Vrp8+vT7ojvSDxcXFer3O2JanHrVaw+uc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" + "image/png": "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" }, - "execution_count": 41, + "execution_count": 39, "metadata": {}, "output_type": "execute_result" } @@ -1581,14 +1527,14 @@ }, { "cell_type": "code", - "execution_count": 42, + "execution_count": 40, "metadata": {}, "outputs": [ { "data": { - "image/png": "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" + "image/png": "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" }, - "execution_count": 42, + "execution_count": 40, "metadata": {}, "output_type": "execute_result" } @@ -1599,14 +1545,14 @@ }, { "cell_type": "code", - "execution_count": 43, + "execution_count": 41, "metadata": {}, "outputs": [ { "data": { - "image/png": "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v/1tV1fXypUr814kooGBgYceeqi5uTnvRYJ64oknLrjggsbGxrJPvv7669/61reO7bb5h/DQoUOPPvpovjsAMKWtW7du8eLFY7tt/iEEgBy5RghAaEIIQGhCCEBoQghAaEIY1+7du5cvX97Q0PDXf/3XBw8ezHudKDo7O5ubm+fNm7d+/frOzs6814nFfT53Tz/9dHa/6XPMhDCoF198cePGjd/85jcPHz68fv36a6+9Nu+Noti+fXtTU9Phw4eXLFmyY8eOvNcJxH0+d11dXddcc01vb2/ei4wmhEE9//zzV1111Tve8Y66urqPfOQjBw4cyHujKHbt2tXa2lpTU9Pa2nr//ffnvU4g7vP5StP0mmuu+cIXvpD3Imfg+wijGxoaam1traio+PrXv573LiHMnj37+PHjdXV1fX195513Xnd3d94bheM+n4vbbrvtxIkTX/7ylwuFSdcdzwgDWbZsWaFQKBQKrxx55JFHVq1aNWfOnJ07d+a4WChpmo78J0jTdGhoKO91wnGfz8Vjjz320EMPbdu2Le9Fzqwy7wWYOM8999wrH6dpunnz5r179957771vetObctwqmsbGxvb29gsvvLCjo2PRokV5rxOI+3yOfvKTn/z0pz+trq4e+cdCofCzn/1s7dq1+W71ikn3FJWJsXfv3uuuu+6Xv/xlZeW/fTE0e/bsfFcK4rOf/WxNTc2tt966efPmwcHBL33pS3lvFIX7/CQxCV8a9YwwqMcff/zAgQNz58595chku2tOV1u3br366qsXL168cuXK73znO3mvE4j7PK9l0pUZACaSN8sAEJoQAhCaEAIQmhACEJoQAhCaEAIQmhACEJoQAhCaEAIQ2v8HpdhsXgSAxQcAAAAASUVORK5CYII=" + "image/png": "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" }, - "execution_count": 43, + "execution_count": 41, "metadata": {}, "output_type": "execute_result" } @@ -1617,14 +1563,14 @@ }, { "cell_type": "code", - "execution_count": 44, + "execution_count": 42, "metadata": {}, "outputs": [ { "data": { - "image/png": "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" + "image/png": "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3O2lD/xN9xCgDpz/SNE9AUCd8RwhAEA0QggAEI0QAgBEI4QAANEIIQBANEIIABCNEAIARCOEAADRCCEAQDRCCAAQjRACAEQjhAAA0QghAEA0QggAEI0QAgBEI4QAANEIIQBANEIIABCNEAIARCOEAADRCCEAQDS77gHXVlhYeOm7XLV/te4hQB1UfpdbWFioewWAumm8IfTlHba/+5+6hwB14D9/tri4WPcKAHXTSEMYHx8ffuuoCw/8TfcQoA6c/0iJi4vTvQJA3fAcIQBANEIIABCNEAIARCOEAADRCCEAQDRCCAAQjRACAEQjhAAA0QghAEA0QggAEI0QAgBEI4QAANEIIQBAtEb67RNKKd93x9XeN3WvAOrA+/0J3RMA1FkjDeGECRM+3v9l2bkduocEoZyjOTZbyG9uvFH3kCBk9LmxS5cuulcAqBvDNM0A3I3H43G73R6PJwD3herNnDkzPDz8ueee0z0ECFoFBQUul8tub6RXGrgCzxECAEQjhAAA0QghAEA0QggAEI0QAgBEI4QAANEIIQBANEIIABCNEAIARLMmhCUlJcnJyW63+5577ikpKbHknAAABIA1IVy4cGHnzp3z8/M7der04osvWnJOAAACwJrPGr3ppps2bNgQHx+fnZ09evTonJycK25w+bNGz549e/U/a7PZHA7H1cf/+c9/lpeX138brpCenu5wOMaOHat7SBBq2bLlvffeq3tFbVVWVp48eVL3iuBUXFwcEREREhKie0gQcrvdrVq1svac1nwmbF5eXufOnZVSl68Lr3kbr9d73XXXXX08MTHxnXfeufr45s2brxlO1FNoaKhS6t1339U9JAhFR0cnJibqXlFb2dnZ06ZN070iOJ06dap169aX/6zBWpMnT54+fXrtb9+qVatrXmv9nDVXhC1atCgqKgoPD79w4UJ0dPTVV3J8+0TjUVZWZhiG0+nUPQQIWvHx8enp6T179tQ9BLVizXOE7dq1+/bbb5VSeXl57du3t+ScAAAEgDUhTE5OTktLM00zLS1t9OjRlpwTAIAAsCaEc+bMOXToUMeOHbOysmbNmmXJOQEACABrXiwTGRm5adMmS04FAEAg8ckyAADRCCEAQDRCCAAQjRACAEQjhAAA0QghAEA0QggAEI0QAgBEI4QAANEIIQBANGs+Yg1Ak1NRUXH8+HHdK4LTxYsX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" }, - "execution_count": 44, + "execution_count": 42, "metadata": {}, "output_type": "execute_result" } @@ -1635,14 +1581,14 @@ }, { "cell_type": "code", - "execution_count": 45, + "execution_count": 43, "metadata": {}, "outputs": [ { "data": { - "image/png": "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" + "image/png": "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" }, - "execution_count": 45, + "execution_count": 43, "metadata": {}, "output_type": "execute_result" } @@ -1653,10 +1599,14 @@ } ], "metadata": { + "@webio": { + "lastCommId": null, + "lastKernelId": null + }, "kernelspec": { - "display_name": "Julia 1.0.3", + "display_name": "Julia 1.1.0", "language": "julia", - "name": "julia-1.0" + "name": "julia-1.1" }, "language_info": { "file_extension": ".jl", diff --git a/README.md b/README.md index cfd9456..a7b4c51 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,13 @@ # An Introduction to DataFrames -[Bogumił Kamiński](http://bogumilkaminski.pl/about/), April 30, 2019 +[Bogumił Kamiński](http://bogumilkaminski.pl/about/), July 16, 2019 -**The tutorial is for DataFrames 0.18.1.** +**The tutorial is for DataFrames 0.19.0.** A brief introduction to basic usage of [DataFrames](https://github.com/JuliaData/DataFrames.jl). -Tested under Julia 1.1, CSV 0.4.3, CSVFiles 0.15.0, CategoricalArrays 0.5.2, -DataFrames 0.18.1, DataFramesMeta 0.4.1, Feather 0.5.1, FileIO 1.0.6, FreqTables 0.3.1, -PooledArrays 0.5.1, StatsPlots 0.10.2, Tables 0.1.19. +Tested under Julia 1.1, CSV 0.5.9, CSVFiles 0.15.0, CategoricalArrays 0.5.4, +DataFrames 0.19.0, DataFramesMeta 0.5.0, Feather 0.5.3, FileIO 1.0.7, FreqTables 0.3.1, +PooledArrays 0.5.2, StatsPlots 0.11.0, Tables 0.2.9. Also package BenchmarkTools 0.4.2 is used as a utility. I will try to keep the material up to date as the packages evolve. @@ -81,6 +81,7 @@ Changelog: | 2018-02-08 | Added `groupvars` and `groupindices` functions| | 2018-04-27 | Updated to DataFrames 0.18.0, dropped JLD2.jl | | 2018-04-30 | Updated handling of missing values description | +| 2018-07-16 | Updated to DataFrames 0.19.0 | # Core functions summary @@ -88,7 +89,7 @@ Changelog: 2. Getting summary: `size`, `nrow`, `ncol`, `describe`, `names`, `eltypes`, `first`, `last`, `getindex`, `setindex!`, `@view` 3. Handling missing: `missing` (singleton instance of `Missing`), `ismissing`, `Missings.T`, `skipmissing`, `replace`, `replace!`, `coalesce`, `allowmissing`, `disallowmissing`, `allowmissing!`, `completecases`, `dropmissing`, `dropmissing!`, `disallowmissing`, `disallowmissing!`, `passmissing` 4. Loading and saving: `CSV` (package), `CSVFiles` (package), `Serialization` (module), `CSV.read`, `CSV.write`, `save`, `load`, `serialize`, `deserialize`, `Feather.write`, `Feather.read`, `Feather.materialize` (from `Feather`) -5. Working with columns: `rename`, `rename!`, `names!`, `hcat`, `insertcol!`, `DataFrames.hcat!`, `deletecols`, `deletecols!`, `empty!`, `categorical!`, `DataFrames.index`, `permutedims!`, `haskey`, `select`, `select!` +5. Working with columns: `rename`, `rename!`, `names!`, `hcat`, `insertcol!`, `DataFrames.hcat!`, `categorical!`, `DataFrames.index`, `permutedims!`, `hasproperty`, `select`, `select!` 6. Working with rows: `sort!`, `sort`, `issorted`, `append!`, `vcat`, `push!`, `view`, `filter`, `filter!`, `deleterows!`, `unique`, `nonunique`, `unique!`, `repeat`, `parent`, `parentindices` 7. Working with categorical: `categorical`, `cut`, `isordered`, `ordered!`, `levels`, `unique`, `levels!`, `droplevels!`, `get`, `recode`, `recode!` 8. Joining: `join`