--- /srv/reproducible-results/rbuild-debian/r-b-build.DhDk3HqU/b1/pandas_2.2.3+dfsg-5_arm64.changes +++ /srv/reproducible-results/rbuild-debian/r-b-build.DhDk3HqU/b2/pandas_2.2.3+dfsg-5_arm64.changes ├── Files │ @@ -1,5 +1,5 @@ │ │ - 0b9cdcb6ce42ea66ad0a7ec10eb9317d 9245004 doc optional python-pandas-doc_2.2.3+dfsg-5_all.deb │ - 5aff3a31db594ff67f408f9a1af1115b 35728564 debug optional python3-pandas-lib-dbgsym_2.2.3+dfsg-5_arm64.deb │ - 43f0b2757428e0cd339c66c675a2aad3 3745844 python optional python3-pandas-lib_2.2.3+dfsg-5_arm64.deb │ + 743d2359e95fc37ec9c7062aa88478f5 9245428 doc optional python-pandas-doc_2.2.3+dfsg-5_all.deb │ + 28c6432bed825d012e6b189333c308fa 35729184 debug optional python3-pandas-lib-dbgsym_2.2.3+dfsg-5_arm64.deb │ + 314c020a3db5276634ca16eaa07705fd 3745916 python optional python3-pandas-lib_2.2.3+dfsg-5_arm64.deb │ 82393119d6d8cb1b1ef15e3b71c2d0a7 3096356 python optional python3-pandas_2.2.3+dfsg-5_all.deb ├── python-pandas-doc_2.2.3+dfsg-5_all.deb │ ├── file list │ │ @@ -1,3 +1,3 @@ │ │ -rw-r--r-- 0 0 0 4 2024-10-21 18:43:11.000000 debian-binary │ │ -rw-r--r-- 0 0 0 146904 2024-10-21 18:43:11.000000 control.tar.xz │ │ --rw-r--r-- 0 0 0 9097908 2024-10-21 18:43:11.000000 data.tar.xz │ │ +-rw-r--r-- 0 0 0 9098332 2024-10-21 18:43:11.000000 data.tar.xz │ ├── control.tar.xz │ │ ├── control.tar │ │ │ ├── ./md5sums │ │ │ │ ├── ./md5sums │ │ │ │ │┄ Files differ │ ├── data.tar.xz │ │ ├── data.tar │ │ │ ├── file list │ │ │ │ @@ -6230,61 +6230,61 @@ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 209237 2024-10-21 18:43:11.000000 ./usr/share/doc/python-pandas-doc/html/reference/series.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 47718 2024-10-21 18:43:11.000000 ./usr/share/doc/python-pandas-doc/html/reference/style.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 47710 2024-10-21 18:43:11.000000 ./usr/share/doc/python-pandas-doc/html/reference/testing.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 52348 2024-10-21 18:43:11.000000 ./usr/share/doc/python-pandas-doc/html/reference/window.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 244 2024-10-21 18:43:11.000000 ./usr/share/doc/python-pandas-doc/html/release.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 269 2024-10-21 18:43:11.000000 ./usr/share/doc/python-pandas-doc/html/reshaping.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 16236 2024-10-21 18:43:11.000000 ./usr/share/doc/python-pandas-doc/html/search.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 2358554 2024-10-21 18:43:11.000000 ./usr/share/doc/python-pandas-doc/html/searchindex.js │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 2358571 2024-10-21 18:43:11.000000 ./usr/share/doc/python-pandas-doc/html/searchindex.js │ │ │ │ -rw-r--r-- 0 root (0) root (0) 259 2024-10-21 18:43:11.000000 ./usr/share/doc/python-pandas-doc/html/sparse.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 244 2024-10-21 18:43:11.000000 ./usr/share/doc/python-pandas-doc/html/style.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 255 2024-10-21 18:43:11.000000 ./usr/share/doc/python-pandas-doc/html/text.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 256 2024-10-21 18:43:11.000000 ./usr/share/doc/python-pandas-doc/html/timedeltas.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 277 2024-10-21 18:43:11.000000 ./usr/share/doc/python-pandas-doc/html/timeseries.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 272 2024-10-21 18:43:11.000000 ./usr/share/doc/python-pandas-doc/html/tutorials.html │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-10-21 18:43:11.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 170385 2024-10-21 18:43:11.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/10min.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 282859 2024-10-21 18:43:11.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/advanced.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 282857 2024-10-21 18:43:11.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/advanced.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 434987 2024-10-21 18:43:11.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/basics.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 35684 2024-10-21 18:43:11.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/boolean.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 216528 2024-10-21 18:43:11.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/categorical.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 17366 2024-10-21 18:43:11.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/cookbook.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 65178 2024-10-21 18:43:11.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/copy_on_write.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 159345 2024-10-21 18:43:11.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/dsintro.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 80419 2024-10-21 18:43:11.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/duplicates.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 114409 2024-10-21 18:43:11.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/enhancingperf.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 114413 2024-10-21 18:43:11.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/enhancingperf.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 106902 2024-10-21 18:43:11.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/gotchas.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 299886 2024-10-21 18:43:11.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/groupby.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 58768 2024-10-21 18:43:11.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/index.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 394407 2024-10-21 18:43:11.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/indexing.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 40816 2024-10-21 18:43:11.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/integer_na.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 1144274 2024-10-21 18:43:11.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/io.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 207911 2024-10-21 18:43:11.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/merging.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 177680 2024-10-21 18:43:11.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/missing_data.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 111206 2024-10-21 18:43:11.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/options.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 146554 2024-10-21 18:43:11.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/pyarrow.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 161699 2024-10-21 18:43:11.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/reshaping.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 114620 2024-10-21 18:43:11.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/scale.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 114621 2024-10-21 18:43:11.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/scale.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 64712 2024-10-21 18:43:11.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/sparse.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 697282 2024-10-21 18:43:11.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/style.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 87879 2024-10-21 18:43:11.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/style.ipynb.gz │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 87873 2024-10-21 18:43:11.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/style.ipynb.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 164343 2024-10-21 18:43:11.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/text.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 99980 2024-10-21 18:43:11.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/timedeltas.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 485612 2024-10-21 18:43:11.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/timeseries.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 203394 2024-10-21 18:43:11.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/visualization.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 141000 2024-10-21 18:43:11.000000 ./usr/share/doc/python-pandas-doc/html/user_guide/window.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 270 2024-10-21 18:43:11.000000 ./usr/share/doc/python-pandas-doc/html/visualization.html │ │ │ │ drwxr-xr-x 0 root (0) root (0) 0 2024-10-21 18:43:11.000000 ./usr/share/doc/python-pandas-doc/html/whatsnew/ │ │ │ │ -rw-r--r-- 0 root (0) root (0) 106734 2024-10-21 18:43:11.000000 ./usr/share/doc/python-pandas-doc/html/whatsnew/index.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 10079 2024-10-21 18:43:11.000000 ./usr/share/doc/python-pandas-doc/html/whatsnew/index.html.gz │ │ │ │ -rw-r--r-- 0 root (0) root (0) 83016 2024-10-21 18:43:11.000000 ./usr/share/doc/python-pandas-doc/html/whatsnew/v0.10.0.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 65522 2024-10-21 18:43:11.000000 ./usr/share/doc/python-pandas-doc/html/whatsnew/v0.10.1.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 81344 2024-10-21 18:43:11.000000 ./usr/share/doc/python-pandas-doc/html/whatsnew/v0.11.0.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 103349 2024-10-21 18:43:11.000000 ./usr/share/doc/python-pandas-doc/html/whatsnew/v0.12.0.html │ │ │ │ --rw-r--r-- 0 root (0) root (0) 221506 2024-10-21 18:43:11.000000 ./usr/share/doc/python-pandas-doc/html/whatsnew/v0.13.0.html │ │ │ │ +-rw-r--r-- 0 root (0) root (0) 221508 2024-10-21 18:43:11.000000 ./usr/share/doc/python-pandas-doc/html/whatsnew/v0.13.0.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 88415 2024-10-21 18:43:11.000000 ./usr/share/doc/python-pandas-doc/html/whatsnew/v0.13.1.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 242763 2024-10-21 18:43:11.000000 ./usr/share/doc/python-pandas-doc/html/whatsnew/v0.14.0.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 82295 2024-10-21 18:43:11.000000 ./usr/share/doc/python-pandas-doc/html/whatsnew/v0.14.1.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 251323 2024-10-21 18:43:11.000000 ./usr/share/doc/python-pandas-doc/html/whatsnew/v0.15.0.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 67310 2024-10-21 18:43:11.000000 ./usr/share/doc/python-pandas-doc/html/whatsnew/v0.15.1.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 74144 2024-10-21 18:43:11.000000 ./usr/share/doc/python-pandas-doc/html/whatsnew/v0.15.2.html │ │ │ │ -rw-r--r-- 0 root (0) root (0) 144231 2024-10-21 18:43:11.000000 ./usr/share/doc/python-pandas-doc/html/whatsnew/v0.16.0.html │ │ │ ├── ./usr/share/doc/python-pandas-doc/html/searchindex.js │ │ │ │ ├── js-beautify {} │ │ │ │ │ @@ -21494,31 +21494,31 @@ │ │ │ │ │ "001294": 2210, │ │ │ │ │ "001372": 2207, │ │ │ │ │ "001376": 2207, │ │ │ │ │ "001427": 2214, │ │ │ │ │ "001438": 2195, │ │ │ │ │ "001486": [102, 1158], │ │ │ │ │ "00180": 2294, │ │ │ │ │ - "002": [2193, 2264], │ │ │ │ │ + "002": 2264, │ │ │ │ │ "002000": 2232, │ │ │ │ │ "002040": 2235, │ │ │ │ │ "002118": [2230, 2231], │ │ │ │ │ "002653": 2207, │ │ │ │ │ "002846": 2229, │ │ │ │ │ - "003": [2185, 2193, 2235], │ │ │ │ │ + "003": [2185, 2235], │ │ │ │ │ "003144": 2210, │ │ │ │ │ "003337": 2207, │ │ │ │ │ "003494": 15, │ │ │ │ │ "003507": [2209, 2218], │ │ │ │ │ "003556": 2207, │ │ │ │ │ "00360": 2294, │ │ │ │ │ "003733": 2207, │ │ │ │ │ "003932": 2216, │ │ │ │ │ "003945": 2210, │ │ │ │ │ - "004": [2186, 2193, 2227], │ │ │ │ │ + "004": [2186, 2227], │ │ │ │ │ "004000": 2232, │ │ │ │ │ "004005006": [287, 939], │ │ │ │ │ "004054": 2229, │ │ │ │ │ "004091": [2204, 2257], │ │ │ │ │ "004127": 2207, │ │ │ │ │ "004194": 2186, │ │ │ │ │ "004201": 2186, │ │ │ │ │ @@ -21531,14 +21531,15 @@ │ │ │ │ │ "005000": 2218, │ │ │ │ │ "005361": 2207, │ │ │ │ │ "005383": 2220, │ │ │ │ │ "005446": 2219, │ │ │ │ │ "005462": 2191, │ │ │ │ │ "005977": 2199, │ │ │ │ │ "005979": 2186, │ │ │ │ │ + "006": 2193, │ │ │ │ │ "006123": 2207, │ │ │ │ │ "006154": [2185, 2197, 2199, 2202, 2204, 2215, 2257], │ │ │ │ │ "0062": 2191, │ │ │ │ │ "006349": 2195, │ │ │ │ │ "006438": 2215, │ │ │ │ │ "006549": [182, 760], │ │ │ │ │ "006695": 2186, │ │ │ │ │ @@ -21571,14 +21572,15 @@ │ │ │ │ │ "009783": 2207, │ │ │ │ │ "009797": 2186, │ │ │ │ │ "009826": [102, 1158, 2205], │ │ │ │ │ "009920": [2184, 2195, 2214], │ │ │ │ │ "00am": 2230, │ │ │ │ │ "00index": 2218, │ │ │ │ │ "01": [3, 15, 16, 17, 19, 29, 30, 31, 79, 80, 82, 88, 107, 121, 182, 187, 207, 213, 218, 219, 230, 242, 261, 270, 271, 276, 277, 278, 283, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 298, 299, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 326, 329, 330, 331, 332, 333, 345, 362, 363, 423, 445, 510, 511, 513, 514, 515, 516, 517, 519, 521, 523, 525, 529, 531, 532, 533, 534, 535, 536, 537, 541, 542, 543, 544, 545, 546, 547, 548, 549, 551, 554, 556, 557, 558, 560, 561, 562, 563, 564, 565, 566, 575, 591, 592, 593, 600, 629, 637, 639, 640, 641, 642, 643, 644, 645, 646, 647, 649, 650, 651, 652, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 665, 666, 667, 668, 670, 671, 673, 674, 675, 676, 677, 678, 679, 680, 684, 685, 686, 688, 689, 696, 760, 763, 781, 788, 793, 804, 817, 874, 893, 898, 899, 902, 903, 904, 905, 909, 910, 917, 919, 922, 929, 934, 939, 940, 943, 944, 945, 948, 949, 953, 954, 957, 959, 960, 969, 972, 982, 984, 997, 1000, 1001, 1003, 1004, 1005, 1011, 1014, 1016, 1017, 1020, 1021, 1024, 1051, 1075, 1078, 1106, 1118, 1122, 1141, 1144, 1145, 1147, 1157, 1164, 1170, 1171, 1176, 1180, 1185, 1192, 1195, 1197, 1206, 1214, 1221, 1227, 1228, 1233, 1239, 1245, 1246, 1253, 1256, 1258, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1277, 1278, 1279, 1280, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1344, 1345, 1367, 1391, 1392, 1393, 1436, 1447, 1452, 1475, 1488, 1490, 1498, 1500, 1501, 1506, 1524, 1542, 1560, 1620, 1699, 1720, 1741, 1793, 1815, 1857, 1930, 1947, 1982, 2036, 2054, 2090, 2108, 2127, 2163, 2184, 2185, 2186, 2188, 2191, 2195, 2197, 2198, 2199, 2200, 2201, 2202, 2204, 2205, 2206, 2207, 2209, 2210, 2212, 2214, 2215, 2216, 2217, 2218, 2219, 2220, 2221, 2222, 2223, 2225, 2226, 2228, 2229, 2230, 2231, 2232, 2235, 2238, 2240, 2241, 2246, 2249, 2261, 2264, 2265, 2271, 2283, 2289, 2294, 2298, 2302, 2307], │ │ │ │ │ + "010": 2193, │ │ │ │ │ "0100": [575, 893, 957, 970, 997, 1004, 1014, 1016, 1020, 1021, 1498, 2186, 2199, 2210, 2246, 2271], │ │ │ │ │ "010000": [954, 1894], │ │ │ │ │ "010010012": [923, 2209], │ │ │ │ │ "010026": 2191, │ │ │ │ │ "010081": 15, │ │ │ │ │ "010165": 2199, │ │ │ │ │ "010589": 2193, │ │ │ │ │ @@ -21597,14 +21599,15 @@ │ │ │ │ │ "011975": 2207, │ │ │ │ │ "012108": 2207, │ │ │ │ │ "012299": 2207, │ │ │ │ │ "0123456789123456": [2164, 2165], │ │ │ │ │ "012549": 2207, │ │ │ │ │ "012694": 2199, │ │ │ │ │ "012922": 2219, │ │ │ │ │ + "013068": 2228, │ │ │ │ │ "013086": 15, │ │ │ │ │ "0133": 2202, │ │ │ │ │ "013448": 2207, │ │ │ │ │ "013605": 2207, │ │ │ │ │ "013684": [182, 760], │ │ │ │ │ "013692": [102, 1158], │ │ │ │ │ "013747": 2199, │ │ │ │ │ @@ -21619,15 +21622,15 @@ │ │ │ │ │ "014138": 2191, │ │ │ │ │ "014144": [102, 1158], │ │ │ │ │ "014648": 2186, │ │ │ │ │ "014752": 2235, │ │ │ │ │ "014805": 2202, │ │ │ │ │ "014871": [2185, 2197, 2199, 2202], │ │ │ │ │ "014888": 2207, │ │ │ │ │ - "015": 2193, │ │ │ │ │ + "014891": 2228, │ │ │ │ │ "015083": 2186, │ │ │ │ │ "015420": 2195, │ │ │ │ │ "015458": 2207, │ │ │ │ │ "015696": [2220, 2228, 2230], │ │ │ │ │ "015906": 2186, │ │ │ │ │ "015962": [2184, 2214], │ │ │ │ │ "015988": 2186, │ │ │ │ │ @@ -21692,15 +21695,14 @@ │ │ │ │ │ "023526": 2191, │ │ │ │ │ "023640": 2230, │ │ │ │ │ "023688": [15, 2185, 2191, 2197], │ │ │ │ │ "0237": 2204, │ │ │ │ │ "023721": 2207, │ │ │ │ │ "023888": 2186, │ │ │ │ │ "023898": 2195, │ │ │ │ │ - "024": 2193, │ │ │ │ │ "024121": 2207, │ │ │ │ │ "024180": [2185, 2197, 2199, 2202, 2204, 2215], │ │ │ │ │ "024320": 2210, │ │ │ │ │ "02458": 2195, │ │ │ │ │ "024580": [2184, 2195, 2214], │ │ │ │ │ "024738": [102, 1158], │ │ │ │ │ "024786": 2207, │ │ │ │ │ @@ -21774,15 +21776,15 @@ │ │ │ │ │ "033350": 2207, │ │ │ │ │ "033387": 2186, │ │ │ │ │ "033606": 2186, │ │ │ │ │ "033606102414146": 2186, │ │ │ │ │ "033695": 2186, │ │ │ │ │ "033718": 2204, │ │ │ │ │ "033823": 2210, │ │ │ │ │ - "034": 1433, │ │ │ │ │ + "034": [1433, 2193], │ │ │ │ │ "034069": 2195, │ │ │ │ │ "034326": [2184, 2257], │ │ │ │ │ "034374": 2210, │ │ │ │ │ "034446": 2207, │ │ │ │ │ "034512": 2207, │ │ │ │ │ "034523": 2210, │ │ │ │ │ "034571": 2197, │ │ │ │ │ @@ -21921,14 +21923,15 @@ │ │ │ │ │ "052849": 2212, │ │ │ │ │ "0530": [1498, 2246], │ │ │ │ │ "053136": 2191, │ │ │ │ │ "053365": [182, 760], │ │ │ │ │ "053667": 2207, │ │ │ │ │ "053768": 2199, │ │ │ │ │ "053785": 2219, │ │ │ │ │ + "054": 2193, │ │ │ │ │ "054325": 2191, │ │ │ │ │ "0549": 2202, │ │ │ │ │ "054932": 2207, │ │ │ │ │ "054972": 2207, │ │ │ │ │ "055224": 2184, │ │ │ │ │ "055300": 2212, │ │ │ │ │ "055457": 2199, │ │ │ │ │ @@ -21964,29 +21967,28 @@ │ │ │ │ │ "059481": 2207, │ │ │ │ │ "059552": 2207, │ │ │ │ │ "059761": 2207, │ │ │ │ │ "059869e": 2191, │ │ │ │ │ "059881": 2210, │ │ │ │ │ "059904": 2214, │ │ │ │ │ "05t00": 2261, │ │ │ │ │ - "06": [26, 27, 29, 30, 31, 207, 213, 218, 230, 273, 292, 294, 332, 363, 526, 534, 536, 637, 644, 646, 688, 781, 788, 793, 804, 900, 969, 993, 1075, 1344, 1441, 1442, 1449, 1450, 1452, 1489, 1497, 1500, 1506, 1524, 1598, 1677, 2184, 2186, 2195, 2197, 2199, 2201, 2204, 2205, 2207, 2209, 2210, 2212, 2214, 2215, 2216, 2217, 2218, 2219, 2222, 2226, 2228, 2230, 2231, 2232, 2235, 2246, 2249, 2261, 2264, 2271, 2298, 2302], │ │ │ │ │ + "06": [26, 27, 29, 30, 31, 207, 213, 218, 230, 273, 292, 294, 332, 363, 526, 534, 536, 637, 644, 646, 688, 781, 788, 793, 804, 900, 969, 993, 1075, 1344, 1441, 1442, 1449, 1450, 1452, 1489, 1497, 1500, 1506, 1524, 1598, 1677, 2184, 2186, 2195, 2197, 2199, 2201, 2204, 2205, 2207, 2209, 2210, 2212, 2214, 2215, 2216, 2217, 2218, 2219, 2222, 2226, 2230, 2231, 2232, 2235, 2246, 2249, 2261, 2264, 2271, 2298, 2302], │ │ │ │ │ "060015": 2207, │ │ │ │ │ "060074": 2185, │ │ │ │ │ "060603": 2207, │ │ │ │ │ "060654": 2207, │ │ │ │ │ "060777": 2207, │ │ │ │ │ "061019": 2199, │ │ │ │ │ "061068": 2210, │ │ │ │ │ "061233": 2207, │ │ │ │ │ "061438": 2199, │ │ │ │ │ "061645": 2193, │ │ │ │ │ "061810": 2204, │ │ │ │ │ "061876": [182, 760], │ │ │ │ │ "061932": 2186, │ │ │ │ │ - "062": 2193, │ │ │ │ │ "062191": 2230, │ │ │ │ │ "062320": 2207, │ │ │ │ │ "062433": 2199, │ │ │ │ │ "062993": 2197, │ │ │ │ │ "0630": 2246, │ │ │ │ │ "063038": 2199, │ │ │ │ │ "063123": 2210, │ │ │ │ │ @@ -22252,20 +22254,20 @@ │ │ │ │ │ "0n": [1489, 2298], │ │ │ │ │ "0px": 2207, │ │ │ │ │ "0rc0": 13, │ │ │ │ │ "0th": [26, 249, 882, 1202, 2185, 2197, 2199, 2235], │ │ │ │ │ "0x00": 2294, │ │ │ │ │ "0x40": 2294, │ │ │ │ │ "0x7efd0c0b0690": 3, │ │ │ │ │ - "0xffff11a60e90": 2230, │ │ │ │ │ - "0xffff4fb85570": 2197, │ │ │ │ │ - "0xffff508b4bf0": 2199, │ │ │ │ │ - "0xffff536b76e0": 2195, │ │ │ │ │ - "0xffff69d61d60": 2246, │ │ │ │ │ - "0xffff721d80e0": 2210, │ │ │ │ │ + "0xffff492d2540": 2230, │ │ │ │ │ + "0xffff86359d60": 2199, │ │ │ │ │ + "0xffff86959570": 2197, │ │ │ │ │ + "0xffff8a4cb7d0": 2195, │ │ │ │ │ + "0xffffa17c9280": 2246, │ │ │ │ │ + "0xffffa8f39300": 2210, │ │ │ │ │ "1": [1, 2, 4, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 39, 42, 44, 46, 49, 54, 56, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 82, 83, 84, 85, 86, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 134, 135, 136, 137, 138, 139, 140, 141, 143, 144, 145, 146, 148, 149, 151, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 177, 178, 180, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 298, 299, 300, 301, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 317, 318, 319, 321, 323, 324, 325, 326, 327, 328, 329, 331, 332, 333, 337, 339, 341, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 361, 363, 364, 366, 367, 370, 371, 372, 375, 376, 377, 378, 380, 382, 384, 385, 386, 387, 388, 389, 390, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 403, 404, 405, 406, 407, 408, 409, 411, 412, 414, 415, 416, 417, 419, 420, 421, 422, 423, 424, 425, 426, 427, 429, 430, 431, 432, 433, 434, 435, 436, 437, 440, 446, 449, 450, 451, 455, 456, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 473, 475, 476, 477, 478, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 495, 496, 498, 499, 500, 501, 502, 503, 505, 509, 510, 511, 514, 516, 519, 525, 531, 532, 533, 534, 536, 540, 543, 545, 547, 548, 549, 551, 557, 558, 561, 565, 568, 569, 571, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 589, 590, 591, 592, 593, 594, 595, 596, 597, 599, 600, 601, 602, 603, 604, 609, 613, 614, 615, 616, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 671, 673, 674, 675, 676, 678, 679, 680, 681, 682, 683, 684, 686, 688, 689, 690, 691, 692, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, 709, 710, 711, 712, 713, 714, 715, 716, 717, 719, 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, 743, 744, 747, 748, 749, 750, 751, 752, 753, 755, 756, 758, 760, 761, 762, 763, 764, 765, 766, 767, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 810, 812, 813, 814, 815, 816, 817, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 891, 892, 894, 895, 896, 897, 898, 899, 900, 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, 912, 913, 914, 916, 918, 921, 923, 927, 930, 938, 939, 940, 941, 942, 943, 945, 946, 947, 948, 949, 950, 951, 952, 953, 957, 959, 960, 970, 977, 979, 981, 984, 994, 997, 1003, 1004, 1005, 1006, 1011, 1012, 1021, 1031, 1032, 1033, 1034, 1035, 1036, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1091, 1092, 1093, 1095, 1096, 1097, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1118, 1119, 1121, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1347, 1348, 1350, 1354, 1355, 1358, 1359, 1362, 1363, 1368, 1369, 1372, 1373, 1374, 1375, 1377, 1380, 1381, 1382, 1383, 1384, 1385, 1387, 1388, 1389, 1390, 1391, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1413, 1414, 1415, 1416, 1417, 1419, 1421, 1422, 1423, 1424, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1453, 1454, 1455, 1457, 1458, 1459, 1460, 1462, 1463, 1464, 1466, 1467, 1468, 1469, 1470, 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1482, 1483, 1485, 1486, 1487, 1488, 1489, 1490, 1491, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1502, 1506, 1507, 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1517, 1524, 1525, 1527, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1535, 1542, 1543, 1545, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1553, 1560, 1561, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1571, 1578, 1580, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1598, 1600, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1620, 1621, 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1637, 1638, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1657, 1659, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1677, 1679, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690, 1691, 1699, 1701, 1704, 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1712, 1720, 1722, 1725, 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1741, 1742, 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1751, 1752, 1758, 1759, 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1770, 1776, 1777, 1779, 1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1793, 1794, 1798, 1799, 1800, 1801, 1802, 1803, 1804, 1805, 1806, 1815, 1816, 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1839, 1840, 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1857, 1858, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1876, 1877, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1894, 1895, 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1912, 1913, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, 1930, 1931, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1947, 1948, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1958, 1964, 1965, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1982, 1983, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 2000, 2001, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2018, 2019, 2023, 2024, 2025, 2026, 2027, 2028, 2029, 2030, 2036, 2037, 2040, 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2048, 2054, 2055, 2058, 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066, 2073, 2077, 2078, 2079, 2080, 2081, 2082, 2083, 2084, 2090, 2091, 2093, 2094, 2095, 2096, 2097, 2098, 2099, 2100, 2101, 2108, 2109, 2111, 2112, 2113, 2114, 2115, 2116, 2117, 2118, 2119, 2127, 2128, 2130, 2131, 2132, 2133, 2134, 2135, 2136, 2137, 2138, 2145, 2146, 2148, 2149, 2150, 2151, 2152, 2153, 2154, 2155, 2156, 2163, 2164, 2165, 2166, 2184, 2185, 2186, 2187, 2188, 2190, 2191, 2192, 2193, 2194, 2195, 2196, 2197, 2198, 2199, 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2208, 2209, 2210, 2211, 2212, 2214, 2216, 2217, 2218, 2220, 2222, 2224, 2225, 2227, 2228, 2230, 2232, 2238, 2240, 2241, 2243, 2245, 2246, 2249, 2257, 2259, 2260, 2263, 2298, 2307, 2309, 2310], │ │ │ │ │ "10": [2, 3, 5, 6, 9, 10, 15, 16, 17, 18, 19, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 68, 69, 74, 80, 83, 84, 85, 88, 91, 94, 97, 98, 102, 105, 109, 111, 113, 119, 120, 121, 129, 133, 137, 138, 139, 140, 142, 144, 160, 163, 171, 173, 187, 188, 189, 190, 192, 193, 199, 202, 203, 204, 206, 207, 212, 213, 215, 216, 217, 220, 221, 222, 223, 228, 230, 234, 244, 258, 265, 268, 275, 276, 278, 284, 286, 288, 289, 293, 295, 296, 298, 300, 302, 316, 317, 318, 322, 323, 324, 329, 330, 331, 345, 395, 423, 427, 440, 445, 509, 514, 516, 534, 536, 544, 546, 551, 554, 556, 560, 562, 568, 569, 570, 571, 572, 577, 583, 592, 594, 595, 596, 600, 620, 621, 627, 635, 639, 641, 645, 647, 648, 649, 650, 652, 670, 671, 673, 677, 678, 679, 681, 684, 685, 686, 695, 696, 708, 713, 714, 738, 741, 763, 764, 765, 766, 768, 781, 787, 788, 798, 804, 808, 836, 837, 838, 839, 840, 841, 842, 843, 844, 849, 852, 863, 868, 874, 889, 895, 902, 904, 912, 923, 940, 942, 943, 944, 948, 957, 959, 960, 970, 982, 984, 995, 997, 1001, 1003, 1004, 1005, 1011, 1016, 1020, 1021, 1069, 1071, 1072, 1075, 1109, 1154, 1158, 1162, 1163, 1173, 1174, 1175, 1180, 1185, 1189, 1195, 1200, 1205, 1219, 1220, 1230, 1239, 1246, 1250, 1256, 1261, 1264, 1267, 1284, 1288, 1291, 1292, 1294, 1297, 1298, 1299, 1306, 1308, 1319, 1324, 1343, 1344, 1345, 1350, 1367, 1387, 1391, 1403, 1411, 1416, 1418, 1420, 1421, 1440, 1447, 1451, 1452, 1458, 1462, 1467, 1473, 1478, 1479, 1482, 1485, 1488, 1490, 1491, 1498, 1598, 1657, 1677, 1699, 1720, 1741, 1758, 1894, 1912, 2018, 2185, 2186, 2188, 2190, 2191, 2192, 2193, 2194, 2195, 2196, 2197, 2198, 2199, 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2216, 2217, 2218, 2219, 2220, 2221, 2222, 2223, 2224, 2225, 2226, 2227, 2228, 2229, 2230, 2231, 2232, 2234, 2235, 2238, 2240, 2241, 2246, 2249, 2254, 2257, 2260, 2261, 2264, 2265, 2271, 2277, 2283, 2289, 2290, 2294, 2298, 2302, 2307, 2308], │ │ │ │ │ "100": [3, 15, 17, 22, 30, 68, 97, 98, 111, 118, 132, 135, 141, 142, 145, 159, 161, 175, 182, 192, 202, 207, 212, 213, 233, 273, 303, 345, 359, 360, 427, 577, 587, 588, 620, 621, 655, 709, 717, 760, 781, 787, 788, 900, 1345, 1391, 1398, 1447, 1457, 1472, 1473, 1488, 1490, 2184, 2185, 2186, 2188, 2190, 2191, 2193, 2194, 2195, 2197, 2199, 2200, 2201, 2202, 2204, 2207, 2208, 2209, 2210, 2211, 2212, 2218, 2220, 2222, 2223, 2225, 2226, 2230, 2231, 2232, 2235, 2241, 2242, 2246, 2249, 2302, 2307], │ │ │ │ │ "1000": [9, 10, 15, 16, 17, 18, 19, 24, 25, 28, 29, 32, 102, 141, 183, 191, 193, 194, 427, 717, 761, 767, 768, 769, 874, 1154, 1158, 1456, 1465, 1467, 1876, 1964, 2184, 2185, 2186, 2188, 2193, 2195, 2199, 2205, 2206, 2207, 2210, 2211, 2220, 2223, 2229, 2230, 2235, 2238, 2246, 2249, 2261, 2294], │ │ │ │ │ "10000": [192, 1485, 2185, 2201, 2206, 2210, 2220, 2228, 2266], │ │ │ │ │ "100000": [1354, 1372, 2199, 2201, 2210], │ │ │ │ │ "1000000": [144, 2199, 2228], │ │ │ │ │ @@ -22428,15 +22430,15 @@ │ │ │ │ │ "10387": 2228, │ │ │ │ │ "10388": 2228, │ │ │ │ │ "1039": 2202, │ │ │ │ │ "10390": 2246, │ │ │ │ │ "10392": 2228, │ │ │ │ │ "10393": 2228, │ │ │ │ │ "10395": 2228, │ │ │ │ │ - "104": [2184, 2185, 2186, 2188, 2191, 2195, 2197, 2199, 2200, 2201, 2204, 2208, 2209, 2210, 2211, 2218, 2220, 2222, 2226, 2230, 2232, 2235, 2246, 2253, 2294], │ │ │ │ │ + "104": [2184, 2185, 2186, 2188, 2191, 2193, 2195, 2197, 2199, 2200, 2201, 2204, 2208, 2209, 2210, 2211, 2218, 2220, 2222, 2226, 2230, 2232, 2235, 2246, 2253, 2294], │ │ │ │ │ "1040": 2202, │ │ │ │ │ "104011": 2235, │ │ │ │ │ "10408": 2228, │ │ │ │ │ "10409": 2235, │ │ │ │ │ "1041": 2205, │ │ │ │ │ "10411": 2228, │ │ │ │ │ "10412": 2228, │ │ │ │ │ @@ -22634,15 +22636,15 @@ │ │ │ │ │ "109291": 2210, │ │ │ │ │ "1093": [16, 17, 18, 19, 2199, 2210, 2235], │ │ │ │ │ "10932": 2246, │ │ │ │ │ "10939": 2228, │ │ │ │ │ "1094": [16, 17, 18, 19, 2199, 2210, 2235], │ │ │ │ │ "10940": 2257, │ │ │ │ │ "10946": 2228, │ │ │ │ │ - "1095": [16, 17, 18, 19, 2193, 2199, 2210, 2235], │ │ │ │ │ + "1095": [16, 17, 18, 19, 2199, 2210, 2235], │ │ │ │ │ "109503": 2207, │ │ │ │ │ "10952": 2228, │ │ │ │ │ "109597": 2186, │ │ │ │ │ "1096": 2210, │ │ │ │ │ "10962": 2228, │ │ │ │ │ "10967": 2238, │ │ │ │ │ "1097": 2210, │ │ │ │ │ @@ -22664,15 +22666,15 @@ │ │ │ │ │ "10h": [2210, 2235], │ │ │ │ │ "10m": [16, 1447, 2200], │ │ │ │ │ "10min": 2230, │ │ │ │ │ "10t00": 2261, │ │ │ │ │ "10th": [2205, 2241], │ │ │ │ │ "10x": [1469, 1486, 1498, 2216, 2219, 2225, 2257], │ │ │ │ │ "11": [2, 10, 15, 17, 18, 19, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 88, 108, 111, 113, 120, 127, 139, 140, 157, 162, 196, 213, 286, 288, 289, 293, 295, 296, 300, 316, 317, 318, 323, 324, 329, 330, 420, 423, 440, 509, 512, 518, 522, 524, 526, 530, 534, 536, 554, 556, 600, 635, 639, 641, 645, 647, 649, 650, 652, 670, 671, 673, 678, 679, 681, 684, 685, 703, 732, 771, 788, 799, 940, 943, 948, 985, 993, 1010, 1019, 1023, 1025, 1169, 1174, 1175, 1195, 1200, 1226, 1256, 1261, 1276, 1292, 1298, 1299, 1306, 1308, 1321, 1433, 1452, 1482, 1498, 1542, 1560, 1598, 1620, 1637, 1677, 1699, 1720, 1741, 1839, 1930, 2184, 2185, 2186, 2188, 2190, 2191, 2192, 2193, 2194, 2195, 2197, 2198, 2199, 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2214, 2215, 2217, 2218, 2219, 2220, 2222, 2223, 2224, 2225, 2228, 2229, 2230, 2231, 2232, 2235, 2238, 2240, 2241, 2246, 2249, 2250, 2257, 2261, 2264, 2265, 2271, 2277, 2278, 2283, 2289, 2294, 2297, 2298, 2302, 2307], │ │ │ │ │ - "110": [213, 359, 360, 587, 588, 788, 2184, 2185, 2186, 2188, 2191, 2195, 2197, 2199, 2200, 2201, 2204, 2207, 2208, 2209, 2210, 2211, 2218, 2220, 2222, 2223, 2230, 2232, 2235, 2246], │ │ │ │ │ + "110": [213, 359, 360, 587, 588, 788, 2184, 2185, 2186, 2188, 2191, 2193, 2195, 2197, 2199, 2200, 2201, 2204, 2207, 2208, 2209, 2210, 2211, 2218, 2220, 2222, 2223, 2230, 2232, 2235, 2246], │ │ │ │ │ "1100": [2195, 2210], │ │ │ │ │ "11000": [2185, 2220], │ │ │ │ │ "11002": 2228, │ │ │ │ │ "11007": 2229, │ │ │ │ │ "1101": 2210, │ │ │ │ │ "11010": 2228, │ │ │ │ │ "11014": 2228, │ │ │ │ │ @@ -22780,15 +22782,15 @@ │ │ │ │ │ "11283": 2229, │ │ │ │ │ "11285": 2229, │ │ │ │ │ "11287": 2232, │ │ │ │ │ "112932": 15, │ │ │ │ │ "11295": 2229, │ │ │ │ │ "11296": 2241, │ │ │ │ │ "11299": 2231, │ │ │ │ │ - "113": [2184, 2185, 2186, 2188, 2191, 2195, 2197, 2199, 2200, 2201, 2204, 2208, 2209, 2210, 2211, 2230, 2232, 2246], │ │ │ │ │ + "113": [2184, 2185, 2186, 2188, 2191, 2193, 2195, 2197, 2199, 2200, 2201, 2204, 2208, 2209, 2210, 2211, 2230, 2232, 2246], │ │ │ │ │ "11300": [176, 179, 754, 757, 1242, 1243], │ │ │ │ │ "11302": 2229, │ │ │ │ │ "11305": 2229, │ │ │ │ │ "113063": 2207, │ │ │ │ │ "11308": [2229, 2235], │ │ │ │ │ "11310": 2238, │ │ │ │ │ "11312": 2298, │ │ │ │ │ @@ -23136,15 +23138,15 @@ │ │ │ │ │ "12182": 2230, │ │ │ │ │ "12185": 2232, │ │ │ │ │ "12190": 2238, │ │ │ │ │ "121950": 2207, │ │ │ │ │ "12198": 2230, │ │ │ │ │ "121991": 2207, │ │ │ │ │ "122": [2184, 2185, 2186, 2188, 2191, 2195, 2197, 2199, 2200, 2201, 2204, 2207, 2208, 2209, 2210, 2211, 2220, 2232], │ │ │ │ │ - "1220": [2193, 2298], │ │ │ │ │ + "1220": 2298, │ │ │ │ │ "12202": 2230, │ │ │ │ │ "12203": 2231, │ │ │ │ │ "1221": 2298, │ │ │ │ │ "12211": 2231, │ │ │ │ │ "12213": 2265, │ │ │ │ │ "12216": 2232, │ │ │ │ │ "12217": 2230, │ │ │ │ │ @@ -23202,15 +23204,15 @@ │ │ │ │ │ "12386": 2230, │ │ │ │ │ "12388": 2232, │ │ │ │ │ "1239": [2185, 2191, 2194], │ │ │ │ │ "12392": 2238, │ │ │ │ │ "12396": 2241, │ │ │ │ │ "12397": 2235, │ │ │ │ │ "12399": 2232, │ │ │ │ │ - "124": [2184, 2185, 2186, 2188, 2191, 2195, 2197, 2199, 2200, 2201, 2204, 2208, 2210, 2211, 2220, 2232], │ │ │ │ │ + "124": [2184, 2185, 2186, 2188, 2191, 2193, 2195, 2197, 2199, 2200, 2201, 2204, 2208, 2210, 2211, 2220, 2232], │ │ │ │ │ "1240": [2185, 2191, 2194], │ │ │ │ │ "12401": 2238, │ │ │ │ │ "12405": 2236, │ │ │ │ │ "12409": 2230, │ │ │ │ │ "12411": 2231, │ │ │ │ │ "124124": 2207, │ │ │ │ │ "12424": 2232, │ │ │ │ │ @@ -24102,15 +24104,15 @@ │ │ │ │ │ "14882": 2235, │ │ │ │ │ "14883": 2235, │ │ │ │ │ "14885": 2249, │ │ │ │ │ "14887": 2235, │ │ │ │ │ "1489": 2197, │ │ │ │ │ "14894": 2234, │ │ │ │ │ "14898": 2235, │ │ │ │ │ - "149": [2184, 2185, 2186, 2188, 2193, 2195, 2197, 2199, 2200, 2201, 2202, 2210, 2211, 2232], │ │ │ │ │ + "149": [2184, 2185, 2186, 2188, 2195, 2197, 2199, 2200, 2201, 2202, 2210, 2211, 2232], │ │ │ │ │ "1490": 2197, │ │ │ │ │ "14901": 2235, │ │ │ │ │ "1490195805": [1498, 2210], │ │ │ │ │ "1490195805433502912": [1498, 2210], │ │ │ │ │ "14908": 2235, │ │ │ │ │ "1491": 2197, │ │ │ │ │ "14910": 2235, │ │ │ │ │ @@ -24573,15 +24575,15 @@ │ │ │ │ │ "16357": 2241, │ │ │ │ │ "16359": 2238, │ │ │ │ │ "16361": 2236, │ │ │ │ │ "16378": 2236, │ │ │ │ │ "16382": 2236, │ │ │ │ │ "16394": 2236, │ │ │ │ │ "16395": 2236, │ │ │ │ │ - "164": [2185, 2186, 2188, 2195, 2197, 2199, 2201, 2210, 2211], │ │ │ │ │ + "164": [2185, 2186, 2188, 2193, 2195, 2197, 2199, 2201, 2210, 2211], │ │ │ │ │ "16402": 2238, │ │ │ │ │ "16405": 2236, │ │ │ │ │ "16406": 2241, │ │ │ │ │ "16409": 2236, │ │ │ │ │ "16413": 2236, │ │ │ │ │ "16417": 2238, │ │ │ │ │ "16442": 2249, │ │ │ │ │ @@ -24957,15 +24959,15 @@ │ │ │ │ │ "17656": 2265, │ │ │ │ │ "1766": 2199, │ │ │ │ │ "176896": 2207, │ │ │ │ │ "17690": 2241, │ │ │ │ │ "17691": 2249, │ │ │ │ │ "17697": 2246, │ │ │ │ │ "1769950": [182, 760], │ │ │ │ │ - "177": [259, 890, 2185, 2186, 2188, 2193, 2195, 2197, 2199, 2200, 2203, 2210, 2211, 2283, 2298], │ │ │ │ │ + "177": [259, 890, 2185, 2186, 2188, 2195, 2197, 2199, 2200, 2203, 2210, 2211, 2283, 2298], │ │ │ │ │ "17704": 2238, │ │ │ │ │ "177045": 2186, │ │ │ │ │ "17710": 2238, │ │ │ │ │ "17717": 2241, │ │ │ │ │ "17722": 2241, │ │ │ │ │ "177310": 2207, │ │ │ │ │ "17738": 2238, │ │ │ │ │ @@ -25679,15 +25681,15 @@ │ │ │ │ │ "20020101": 2199, │ │ │ │ │ "200252": 2207, │ │ │ │ │ "20027": 2241, │ │ │ │ │ "2002q3": 540, │ │ │ │ │ "2003": [195, 264, 770, 2199], │ │ │ │ │ "20030": 2241, │ │ │ │ │ "200308": 2207, │ │ │ │ │ - "2004": [107, 629, 1164, 1221, 2219], │ │ │ │ │ + "2004": [107, 629, 1164, 1221, 2193, 2219], │ │ │ │ │ "20040": 2241, │ │ │ │ │ "20040601": 2219, │ │ │ │ │ "20049": 2246, │ │ │ │ │ "2005": [532, 1345, 1391, 1488, 1490, 1501, 2199, 2202, 2210], │ │ │ │ │ "200519": 2207, │ │ │ │ │ "20056": 2241, │ │ │ │ │ "2006": [107, 532, 629, 1164, 1221, 2191], │ │ │ │ │ @@ -25748,18 +25750,17 @@ │ │ │ │ │ "2020q1": 1008, │ │ │ │ │ "2021": [288, 296, 318, 639, 652, 673, 940, 943, 948, 957, 970, 997, 1542, 2201, 2207, 2213, 2277, 2289, 2294], │ │ │ │ │ "2022": [5, 22, 523, 525, 528, 537, 982, 1185, 1246, 1288, 1491, 1510, 1511, 1512, 1513, 1514, 1515, 1516, 1528, 1529, 1530, 1531, 1532, 1533, 1534, 1542, 1546, 1547, 1548, 1549, 1550, 1551, 1552, 1560, 1564, 1565, 1566, 1567, 1568, 1569, 1570, 1578, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1598, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1620, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1637, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1657, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1677, 1684, 1685, 1686, 1687, 1688, 1689, 1690, 1699, 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1720, 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1745, 1746, 1747, 1748, 1749, 1750, 1751, 1758, 1763, 1764, 1765, 1766, 1767, 1768, 1769, 1776, 1780, 1781, 1782, 1783, 1784, 1785, 1786, 1793, 1799, 1800, 1801, 1802, 1803, 1804, 1805, 1815, 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1839, 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1857, 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1876, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1894, 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1912, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1930, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1947, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1964, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1982, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 2000, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2018, 2023, 2024, 2025, 2026, 2027, 2028, 2029, 2036, 2041, 2042, 2043, 2044, 2045, 2046, 2047, 2054, 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2077, 2078, 2079, 2080, 2081, 2082, 2083, 2094, 2095, 2096, 2097, 2098, 2099, 2100, 2108, 2112, 2113, 2114, 2115, 2116, 2117, 2118, 2127, 2131, 2132, 2133, 2134, 2135, 2136, 2137, 2145, 2149, 2150, 2151, 2152, 2153, 2154, 2155, 2186, 2203, 2213, 2227, 2298, 2302, 2307], │ │ │ │ │ "2022a": 2294, │ │ │ │ │ "2023": [34, 270, 298, 301, 320, 363, 511, 519, 526, 533, 543, 544, 545, 546, 547, 548, 549, 551, 554, 555, 556, 557, 558, 560, 563, 564, 565, 566, 567, 651, 894, 898, 954, 959, 960, 982, 984, 1000, 1001, 1003, 1004, 1005, 1011, 1016, 1020, 1021, 1024, 1122, 1141, 1147, 1157, 1170, 1171, 1176, 1180, 1185, 1195, 1197, 1206, 1214, 1227, 1228, 1233, 1239, 1245, 1246, 1256, 1258, 1268, 1271, 1273, 1274, 1277, 1278, 1279, 1280, 1282, 1283, 1284, 1285, 1287, 1288, 1290, 1291, 1292, 1293, 1294, 1295, 1297, 1501, 1620, 1930, 2090, 2127, 2145, 2213], │ │ │ │ │ "202380": 2207, │ │ │ │ │ "20239": [2241, 2265], │ │ │ │ │ - "2024": [36, 270, 544, 546, 555, 567, 894, 898, 2127, 2213], │ │ │ │ │ + "2024": [36, 270, 544, 546, 555, 567, 894, 898, 2127, 2213, 2228], │ │ │ │ │ "2025": [544, 546, 555, 567, 894, 898, 2228], │ │ │ │ │ "20251": 2307, │ │ │ │ │ - "2026": 2228, │ │ │ │ │ "202602": 2205, │ │ │ │ │ "202646": 2230, │ │ │ │ │ "20271": 2241, │ │ │ │ │ "202872": [2184, 2214], │ │ │ │ │ "202946": 2207, │ │ │ │ │ "203": [2185, 2186, 2188, 2195, 2197, 2199, 2210, 2211, 2231, 2253], │ │ │ │ │ "2030": 2265, │ │ │ │ │ @@ -26605,15 +26606,15 @@ │ │ │ │ │ "237723": 2195, │ │ │ │ │ "23774": 2246, │ │ │ │ │ "23779": 2265, │ │ │ │ │ "23784": 2271, │ │ │ │ │ "23785": 2249, │ │ │ │ │ "23788": 2246, │ │ │ │ │ "237881": 2185, │ │ │ │ │ - "238": [2185, 2186, 2188, 2193, 2195, 2197, 2199, 2210, 2220, 2298], │ │ │ │ │ + "238": [2185, 2186, 2188, 2195, 2197, 2199, 2210, 2220, 2298], │ │ │ │ │ "238000": [2185, 2220], │ │ │ │ │ "23801": 2246, │ │ │ │ │ "23803": 2277, │ │ │ │ │ "23807": 2246, │ │ │ │ │ "238075": 2197, │ │ │ │ │ "23809": 2271, │ │ │ │ │ "23814": 2246, │ │ │ │ │ @@ -26653,15 +26654,15 @@ │ │ │ │ │ "23980": 2246, │ │ │ │ │ "239885": 2186, │ │ │ │ │ "23990": [2246, 2265], │ │ │ │ │ "23998": 2289, │ │ │ │ │ "239990": 2235, │ │ │ │ │ "23h30min": [213, 345, 788, 2210], │ │ │ │ │ "24": [3, 15, 17, 18, 19, 25, 29, 30, 31, 32, 35, 101, 133, 134, 198, 208, 213, 214, 249, 271, 282, 341, 345, 407, 411, 532, 632, 708, 745, 751, 782, 788, 882, 899, 938, 1198, 1202, 1263, 1344, 1397, 1430, 1491, 1506, 1524, 1542, 1560, 2184, 2185, 2186, 2188, 2190, 2191, 2192, 2193, 2194, 2195, 2197, 2198, 2199, 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2214, 2215, 2216, 2218, 2219, 2220, 2222, 2223, 2225, 2226, 2228, 2230, 2231, 2232, 2235, 2238, 2241, 2249, 2265, 2271, 2277, 2283, 2287, 2289, 2294, 2297, 2298, 2302, 2307], │ │ │ │ │ - "240": [1302, 1433, 2185, 2186, 2188, 2193, 2195, 2197, 2199, 2210, 2220, 2231, 2238, 2246, 2298], │ │ │ │ │ + "240": [1302, 1433, 2185, 2186, 2188, 2195, 2197, 2199, 2210, 2220, 2231, 2238, 2246, 2298], │ │ │ │ │ "24008": 2223, │ │ │ │ │ "24009288": 2199, │ │ │ │ │ "24011": 2249, │ │ │ │ │ "24014": 2249, │ │ │ │ │ "24023": 2246, │ │ │ │ │ "24024": 2246, │ │ │ │ │ "24025": 2246, │ │ │ │ │ @@ -27455,28 +27456,28 @@ │ │ │ │ │ "27758": 2265, │ │ │ │ │ "27766": 2250, │ │ │ │ │ "27775": 2250, │ │ │ │ │ "27779": 2250, │ │ │ │ │ "27781": 2271, │ │ │ │ │ "277825": 2186, │ │ │ │ │ "27790": 2265, │ │ │ │ │ - "278": [2186, 2193, 2195, 2197, 2199, 2210], │ │ │ │ │ + "278": [2186, 2195, 2197, 2199, 2210], │ │ │ │ │ "278094": 2197, │ │ │ │ │ "278111": 2186, │ │ │ │ │ "27814": 2250, │ │ │ │ │ "27837": 2271, │ │ │ │ │ "278380": 2199, │ │ │ │ │ "27840": 2250, │ │ │ │ │ "27841": 2250, │ │ │ │ │ "278445": 2184, │ │ │ │ │ "2786": 2217, │ │ │ │ │ "27865": 2250, │ │ │ │ │ "27874": 2265, │ │ │ │ │ "27892": 2271, │ │ │ │ │ - "279": [15, 2186, 2193, 2195, 2197, 2199, 2210], │ │ │ │ │ + "279": [15, 2186, 2195, 2197, 2199, 2210], │ │ │ │ │ "27900": 2251, │ │ │ │ │ "279321": 2186, │ │ │ │ │ "279344": 2186, │ │ │ │ │ "27943": 2250, │ │ │ │ │ "27951": 2265, │ │ │ │ │ "27952": 2265, │ │ │ │ │ "27953": 2271, │ │ │ │ │ @@ -27514,15 +27515,15 @@ │ │ │ │ │ "28115": 2265, │ │ │ │ │ "28118": 2265, │ │ │ │ │ "281247": [2185, 2191, 2197, 2199, 2202, 2204], │ │ │ │ │ "28130": 2265, │ │ │ │ │ "28139": 2265, │ │ │ │ │ "281461": 2191, │ │ │ │ │ "28147": 2251, │ │ │ │ │ - "281472434973616": 2246, │ │ │ │ │ + "281473395739312": 2246, │ │ │ │ │ "28150": 2265, │ │ │ │ │ "28156": 2271, │ │ │ │ │ "28163": 2265, │ │ │ │ │ "2817": 1344, │ │ │ │ │ "281885": 2186, │ │ │ │ │ "28189": 2271, │ │ │ │ │ "28192": 2265, │ │ │ │ │ @@ -27572,15 +27573,15 @@ │ │ │ │ │ "283627": 2229, │ │ │ │ │ "28368": 2265, │ │ │ │ │ "2837": 2216, │ │ │ │ │ "28375": 2271, │ │ │ │ │ "28383": 2265, │ │ │ │ │ "28385": 2298, │ │ │ │ │ "28394": 2277, │ │ │ │ │ - "284": [16, 17, 18, 19, 2186, 2197, 2199, 2210, 2235], │ │ │ │ │ + "284": [16, 17, 18, 19, 2186, 2193, 2197, 2199, 2210, 2235], │ │ │ │ │ "28406": 2265, │ │ │ │ │ "28410": 2265, │ │ │ │ │ "28425": 2265, │ │ │ │ │ "28426": 2265, │ │ │ │ │ "28427": 2265, │ │ │ │ │ "284319": 2202, │ │ │ │ │ "2846": 2185, │ │ │ │ │ @@ -29601,15 +29602,15 @@ │ │ │ │ │ "386717": 2207, │ │ │ │ │ "38672": 2283, │ │ │ │ │ "386734": 2207, │ │ │ │ │ "386849": 29, │ │ │ │ │ "386902": 2207, │ │ │ │ │ "3869563279212530728": 2165, │ │ │ │ │ "386998": 2207, │ │ │ │ │ - "387": [16, 17, 18, 19, 2186, 2197, 2199, 2207, 2210, 2235, 2255], │ │ │ │ │ + "387": [16, 17, 18, 19, 2186, 2193, 2197, 2199, 2207, 2210, 2235, 2255], │ │ │ │ │ "38701": [2294, 2298], │ │ │ │ │ "387015": 2235, │ │ │ │ │ "38708": 2278, │ │ │ │ │ "38709": 2283, │ │ │ │ │ "38714": 2278, │ │ │ │ │ "38723": 2278, │ │ │ │ │ "387275": 2197, │ │ │ │ │ @@ -30036,15 +30037,15 @@ │ │ │ │ │ "4056": 2220, │ │ │ │ │ "405638": 2207, │ │ │ │ │ "40571": 2298, │ │ │ │ │ "40585": 2283, │ │ │ │ │ "40589": 2294, │ │ │ │ │ "405906": 2207, │ │ │ │ │ "405919": 2195, │ │ │ │ │ - "406": [2186, 2199, 2210], │ │ │ │ │ + "406": [2186, 2193, 2199, 2210], │ │ │ │ │ "4060": 2222, │ │ │ │ │ "40606": 2283, │ │ │ │ │ "4062": [2193, 2217], │ │ │ │ │ "40628": [2283, 2298], │ │ │ │ │ "4063": 2217, │ │ │ │ │ "406345": 2207, │ │ │ │ │ "40638": 2298, │ │ │ │ │ @@ -30983,15 +30984,15 @@ │ │ │ │ │ "44564": 2289, │ │ │ │ │ "44572": 2289, │ │ │ │ │ "44574": 2289, │ │ │ │ │ "44575": 2289, │ │ │ │ │ "44580": 2289, │ │ │ │ │ "44595": 2289, │ │ │ │ │ "44597": 2289, │ │ │ │ │ - "446": [2193, 2199, 2210, 2249], │ │ │ │ │ + "446": [2199, 2210, 2249], │ │ │ │ │ "44603": 2294, │ │ │ │ │ "44609": 2289, │ │ │ │ │ "44616": 2289, │ │ │ │ │ "44629": 2298, │ │ │ │ │ "4463": 2218, │ │ │ │ │ "446531": 2191, │ │ │ │ │ "4466": 2222, │ │ │ │ │ @@ -31155,15 +31156,15 @@ │ │ │ │ │ "45361": 2294, │ │ │ │ │ "45362": 2294, │ │ │ │ │ "453684": 2207, │ │ │ │ │ "453749": [2184, 2214], │ │ │ │ │ "45384": 2289, │ │ │ │ │ "453846": 2201, │ │ │ │ │ "45387": 2294, │ │ │ │ │ - "454": [28, 2199, 2207, 2210, 2249], │ │ │ │ │ + "454": [28, 2199, 2207, 2210, 2218, 2249], │ │ │ │ │ "454020": 2207, │ │ │ │ │ "45404": 2294, │ │ │ │ │ "454118": 2207, │ │ │ │ │ "454131": 2197, │ │ │ │ │ "45414": 2294, │ │ │ │ │ "4542": 28, │ │ │ │ │ "454200": 28, │ │ │ │ │ @@ -31346,15 +31347,15 @@ │ │ │ │ │ "46174": 2294, │ │ │ │ │ "46178": 2302, │ │ │ │ │ "4618": 2218, │ │ │ │ │ "46185": 2294, │ │ │ │ │ "46186": 2294, │ │ │ │ │ "46188": [2294, 2298], │ │ │ │ │ "4619": 2218, │ │ │ │ │ - "462": [2199, 2210, 2256], │ │ │ │ │ + "462": [2193, 2199, 2210, 2256], │ │ │ │ │ "4620": 2218, │ │ │ │ │ "46202": 2298, │ │ │ │ │ "4621": 2218, │ │ │ │ │ "46210": 2294, │ │ │ │ │ "46216": 2294, │ │ │ │ │ "46218": 2293, │ │ │ │ │ "46220": 2294, │ │ │ │ │ @@ -31507,15 +31508,14 @@ │ │ │ │ │ "46995": 2292, │ │ │ │ │ "46997": 2294, │ │ │ │ │ "46999": 2294, │ │ │ │ │ "47": [17, 19, 213, 345, 788, 924, 985, 1323, 2184, 2185, 2186, 2188, 2190, 2191, 2193, 2194, 2195, 2197, 2199, 2200, 2201, 2202, 2203, 2204, 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2214, 2218, 2220, 2222, 2226, 2228, 2230, 2231, 2232, 2235, 2238, 2241, 2246, 2249, 2265, 2271, 2283], │ │ │ │ │ "470": [29, 2199, 2210], │ │ │ │ │ "47003": 2294, │ │ │ │ │ "470054": 2207, │ │ │ │ │ - "470079": 2228, │ │ │ │ │ "4702": 2218, │ │ │ │ │ "47039": 2292, │ │ │ │ │ "47053": 2292, │ │ │ │ │ "47071": 2293, │ │ │ │ │ "47079": 2294, │ │ │ │ │ "4708": 2218, │ │ │ │ │ "47084": [2292, 2298], │ │ │ │ │ @@ -31539,22 +31539,21 @@ │ │ │ │ │ "471593": 2204, │ │ │ │ │ "47172": 2293, │ │ │ │ │ "47177": 2298, │ │ │ │ │ "4718": 2218, │ │ │ │ │ "47188": 2292, │ │ │ │ │ "47196": 2294, │ │ │ │ │ "471992": 2264, │ │ │ │ │ - "472": [2191, 2199, 2210], │ │ │ │ │ + "472": [2191, 2193, 2199, 2210], │ │ │ │ │ "47203": 2294, │ │ │ │ │ "472035": [2185, 2197, 2199, 2202, 2204, 2215, 2257], │ │ │ │ │ "47207": 2292, │ │ │ │ │ "47209": 2294, │ │ │ │ │ "47215": 2294, │ │ │ │ │ "47216": 2294, │ │ │ │ │ - "472377": 2228, │ │ │ │ │ "47244": 2298, │ │ │ │ │ "47247": 2294, │ │ │ │ │ "47248": 2305, │ │ │ │ │ "4726": 2218, │ │ │ │ │ "472618": 2191, │ │ │ │ │ "47263": 2294, │ │ │ │ │ "47266": [2294, 2298], │ │ │ │ │ @@ -31999,15 +31998,15 @@ │ │ │ │ │ "49581": 2298, │ │ │ │ │ "49583": 2298, │ │ │ │ │ "495931": 2207, │ │ │ │ │ "49594": 2298, │ │ │ │ │ "495941": 1416, │ │ │ │ │ "49596": 2298, │ │ │ │ │ "49599": 2298, │ │ │ │ │ - "496": [2194, 2199, 2201, 2203, 2210, 2249, 2257, 2283, 2294, 2298, 2307], │ │ │ │ │ + "496": [2193, 2194, 2199, 2201, 2203, 2210, 2249, 2257, 2283, 2294, 2298, 2307], │ │ │ │ │ "49603": 2298, │ │ │ │ │ "496030": 2207, │ │ │ │ │ "49612": [2297, 2302], │ │ │ │ │ "49620": 2298, │ │ │ │ │ "49631": 2298, │ │ │ │ │ "49632": 2298, │ │ │ │ │ "49649": 2297, │ │ │ │ │ @@ -32737,15 +32736,15 @@ │ │ │ │ │ "53258": 2302, │ │ │ │ │ "5326": 2218, │ │ │ │ │ "53265": 2302, │ │ │ │ │ "532779": 2207, │ │ │ │ │ "532785": 2219, │ │ │ │ │ "53291": 2302, │ │ │ │ │ "53295": 2300, │ │ │ │ │ - "533": [16, 17, 18, 19, 2193, 2199, 2207, 2235], │ │ │ │ │ + "533": [16, 17, 18, 19, 2199, 2207, 2235], │ │ │ │ │ "533026": 2195, │ │ │ │ │ "533145": 2207, │ │ │ │ │ "53325": 2302, │ │ │ │ │ "53326": 2302, │ │ │ │ │ "53328": 2300, │ │ │ │ │ "533340": 2207, │ │ │ │ │ "5334": 2218, │ │ │ │ │ @@ -33028,15 +33027,15 @@ │ │ │ │ │ "5497": 2219, │ │ │ │ │ "549734": 2207, │ │ │ │ │ "54980": 2303, │ │ │ │ │ "54981": 2303, │ │ │ │ │ "549834": 2207, │ │ │ │ │ "54984": 2307, │ │ │ │ │ "54994": 2307, │ │ │ │ │ - "55": [15, 17, 19, 139, 140, 202, 213, 228, 273, 276, 788, 900, 902, 1174, 1175, 2184, 2185, 2186, 2188, 2190, 2191, 2193, 2195, 2197, 2199, 2200, 2201, 2202, 2203, 2204, 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2214, 2218, 2220, 2222, 2223, 2225, 2226, 2228, 2230, 2231, 2232, 2235, 2238, 2241, 2246, 2249, 2271, 2283, 2302], │ │ │ │ │ + "55": [15, 17, 19, 139, 140, 202, 213, 228, 273, 276, 788, 900, 902, 1174, 1175, 2184, 2185, 2186, 2188, 2190, 2191, 2193, 2195, 2197, 2199, 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2214, 2218, 2220, 2222, 2223, 2225, 2226, 2228, 2230, 2231, 2232, 2235, 2238, 2241, 2246, 2249, 2271, 2283, 2302], │ │ │ │ │ "550": 2199, │ │ │ │ │ "5500": [6, 25], │ │ │ │ │ "55000": 2303, │ │ │ │ │ "550000": 2212, │ │ │ │ │ "55003": 2303, │ │ │ │ │ "55006": 2303, │ │ │ │ │ "55009": 2307, │ │ │ │ │ @@ -33610,15 +33609,15 @@ │ │ │ │ │ "591395": 2207, │ │ │ │ │ "5914": 2219, │ │ │ │ │ "591431": [2184, 2214], │ │ │ │ │ "591538": 2197, │ │ │ │ │ "5917": 2220, │ │ │ │ │ "591710": 2195, │ │ │ │ │ "591863": 2235, │ │ │ │ │ - "592": 2199, │ │ │ │ │ + "592": [2199, 2205], │ │ │ │ │ "5922": 2219, │ │ │ │ │ "592222": 2207, │ │ │ │ │ "592306": 2184, │ │ │ │ │ "592714": 2195, │ │ │ │ │ "5928": [2186, 2219], │ │ │ │ │ "592886": 2235, │ │ │ │ │ "592951": 2207, │ │ │ │ │ @@ -34068,15 +34067,15 @@ │ │ │ │ │ "646086": 2207, │ │ │ │ │ "6462": 2220, │ │ │ │ │ "6463": 2220, │ │ │ │ │ "6466": 2220, │ │ │ │ │ "646654": 2207, │ │ │ │ │ "646721": 2207, │ │ │ │ │ "646737": 2207, │ │ │ │ │ - "647": [2199, 2257], │ │ │ │ │ + "647": [2199, 2205, 2257], │ │ │ │ │ "6471": 2220, │ │ │ │ │ "6472": 2220, │ │ │ │ │ "647353": 2207, │ │ │ │ │ "647444": 2207, │ │ │ │ │ "647623": 2186, │ │ │ │ │ "647626": 2207, │ │ │ │ │ "647699": 2199, │ │ │ │ │ @@ -34236,15 +34235,15 @@ │ │ │ │ │ "664": 2199, │ │ │ │ │ "6641": 2298, │ │ │ │ │ "6642": 2298, │ │ │ │ │ "6643": 2298, │ │ │ │ │ "6644": 2298, │ │ │ │ │ "6645": [2220, 2298], │ │ │ │ │ "664592": 2207, │ │ │ │ │ - "665": [2186, 2199, 2227], │ │ │ │ │ + "665": [2186, 2199, 2205, 2227], │ │ │ │ │ "665170": 2204, │ │ │ │ │ "665314": 2207, │ │ │ │ │ "665382": 2207, │ │ │ │ │ "6655": 2202, │ │ │ │ │ "665572": 2195, │ │ │ │ │ "6656": 2220, │ │ │ │ │ "665737": 2184, │ │ │ │ │ @@ -34555,15 +34554,15 @@ │ │ │ │ │ "6th": 2298, │ │ │ │ │ "7": [10, 15, 16, 17, 18, 19, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 63, 65, 68, 72, 73, 74, 89, 92, 106, 108, 111, 113, 120, 122, 133, 136, 137, 141, 160, 163, 169, 185, 186, 193, 196, 197, 202, 203, 208, 212, 213, 219, 228, 234, 240, 248, 259, 265, 267, 273, 278, 280, 284, 346, 353, 384, 392, 395, 400, 414, 415, 568, 577, 583, 586, 601, 603, 616, 628, 632, 635, 697, 708, 712, 717, 738, 741, 758, 762, 768, 771, 782, 787, 788, 794, 807, 816, 846, 881, 890, 895, 896, 900, 904, 907, 912, 982, 984, 1073, 1075, 1103, 1147, 1150, 1151, 1153, 1157, 1163, 1165, 1170, 1171, 1173, 1176, 1180, 1185, 1188, 1191, 1193, 1197, 1199, 1200, 1205, 1206, 1209, 1210, 1212, 1214, 1220, 1222, 1227, 1228, 1233, 1239, 1246, 1249, 1252, 1254, 1258, 1260, 1261, 1265, 1267, 1268, 1269, 1270, 1273, 1277, 1278, 1279, 1284, 1288, 1293, 1295, 1297, 1304, 1318, 1320, 1321, 1334, 1335, 1337, 1343, 1347, 1369, 1384, 1397, 1406, 1416, 1430, 1433, 1440, 1446, 1447, 1448, 1454, 1456, 1463, 1478, 1479, 1490, 1699, 1720, 2166, 2184, 2185, 2186, 2187, 2188, 2190, 2191, 2192, 2193, 2194, 2195, 2197, 2198, 2199, 2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209, 2210, 2211, 2212, 2214, 2215, 2216, 2217, 2218, 2219, 2220, 2221, 2222, 2223, 2224, 2225, 2226, 2228, 2229, 2230, 2231, 2232, 2235, 2238, 2239, 2240, 2241, 2242, 2243, 2245, 2246, 2247, 2248, 2249, 2264, 2265, 2271, 2277, 2278, 2283, 2286, 2289, 2294, 2298, 2302, 2307], │ │ │ │ │ "70": [15, 17, 19, 74, 188, 189, 583, 764, 765, 1198, 2184, 2185, 2186, 2188, 2191, 2195, 2197, 2199, 2200, 2201, 2202, 2204, 2205, 2207, 2208, 2209, 2210, 2211, 2212, 2218, 2220, 2222, 2226, 2228, 2230, 2232, 2235, 2241, 2246, 2271], │ │ │ │ │ "700": [74, 583, 2199, 2261], │ │ │ │ │ "70000": 2201, │ │ │ │ │ "700000": [1320, 2201], │ │ │ │ │ "700301": 2207, │ │ │ │ │ - "701": [2199, 2218], │ │ │ │ │ + "701": 2199, │ │ │ │ │ "701025": 2207, │ │ │ │ │ "7011": 2220, │ │ │ │ │ "701204": 2214, │ │ │ │ │ "701343": 2207, │ │ │ │ │ "701379": 2186, │ │ │ │ │ "7015": 2220, │ │ │ │ │ "701544": 2191, │ │ │ │ │ @@ -34773,15 +34772,15 @@ │ │ │ │ │ "729": [16, 17, 18, 19, 2197, 2199, 2231, 2235], │ │ │ │ │ "729161": 2199, │ │ │ │ │ "7292": 2241, │ │ │ │ │ "7297": 2221, │ │ │ │ │ "7299": 2221, │ │ │ │ │ "729907": 2186, │ │ │ │ │ "72hr": 234, │ │ │ │ │ - "73": [15, 17, 2184, 2185, 2186, 2188, 2191, 2195, 2197, 2199, 2200, 2201, 2202, 2204, 2205, 2207, 2208, 2209, 2210, 2211, 2212, 2218, 2220, 2222, 2226, 2228, 2230, 2232, 2235, 2238, 2241, 2246, 2271], │ │ │ │ │ + "73": [15, 17, 2184, 2185, 2186, 2188, 2191, 2193, 2195, 2197, 2199, 2200, 2201, 2202, 2204, 2205, 2207, 2208, 2209, 2210, 2211, 2212, 2218, 2220, 2222, 2226, 2228, 2230, 2232, 2235, 2238, 2241, 2246, 2271], │ │ │ │ │ "730": [16, 17, 18, 19, 2199, 2235], │ │ │ │ │ "7300": 2221, │ │ │ │ │ "730057": 2195, │ │ │ │ │ "7302": 2221, │ │ │ │ │ "7306": 2221, │ │ │ │ │ "7308": 2294, │ │ │ │ │ "730951": 2257, │ │ │ │ │ @@ -34850,15 +34849,15 @@ │ │ │ │ │ "7379": 2221, │ │ │ │ │ "738": [2199, 2298], │ │ │ │ │ "738035": 2186, │ │ │ │ │ "7383": 2221, │ │ │ │ │ "738357": 2207, │ │ │ │ │ "738521": 1011, │ │ │ │ │ "738908": 2207, │ │ │ │ │ - "739": [2199, 2205, 2298], │ │ │ │ │ + "739": [2199, 2298], │ │ │ │ │ "739013": 2207, │ │ │ │ │ "7391": 2221, │ │ │ │ │ "739185": 2207, │ │ │ │ │ "7394": 2221, │ │ │ │ │ "739537": 2195, │ │ │ │ │ "7398": 2202, │ │ │ │ │ "7399": 2221, │ │ │ │ │ @@ -34995,15 +34994,15 @@ │ │ │ │ │ "757772": 2207, │ │ │ │ │ "758": [27, 2185, 2298], │ │ │ │ │ "758070": 2207, │ │ │ │ │ "758294": 2191, │ │ │ │ │ "7586": 2221, │ │ │ │ │ "758602": 2207, │ │ │ │ │ "7588": 2231, │ │ │ │ │ - "759": [32, 2205], │ │ │ │ │ + "759": 32, │ │ │ │ │ "759104": 2185, │ │ │ │ │ "7592": 2221, │ │ │ │ │ "759328": 2199, │ │ │ │ │ "759606": 2199, │ │ │ │ │ "759644": 2222, │ │ │ │ │ "7599": 2228, │ │ │ │ │ "75th": [107, 629, 1164, 1221], │ │ │ │ │ @@ -35525,27 +35524,27 @@ │ │ │ │ │ "8281983": 2199, │ │ │ │ │ "828230": 2191, │ │ │ │ │ "828394": 2199, │ │ │ │ │ "828427": 1339, │ │ │ │ │ "8285": 2225, │ │ │ │ │ "8287": 2232, │ │ │ │ │ "828904": 2191, │ │ │ │ │ - "829": 2193, │ │ │ │ │ "8292": 2232, │ │ │ │ │ "829645": 2207, │ │ │ │ │ "829678": 2191, │ │ │ │ │ "829721": 2212, │ │ │ │ │ "83": [15, 24, 2184, 2185, 2186, 2188, 2191, 2195, 2197, 2199, 2200, 2201, 2202, 2204, 2207, 2208, 2209, 2210, 2211, 2212, 2218, 2222, 2223, 2226, 2228, 2230, 2232, 2235, 2241, 2246, 2271], │ │ │ │ │ "8302": 2224, │ │ │ │ │ "8303": 2222, │ │ │ │ │ "830429": 2207, │ │ │ │ │ "8305": 2222, │ │ │ │ │ "830545": 2199, │ │ │ │ │ "8306": [2243, 2246], │ │ │ │ │ "830957": 2207, │ │ │ │ │ + "831": 2193, │ │ │ │ │ "831269": 2186, │ │ │ │ │ "831973": 2207, │ │ │ │ │ "8325": [2224, 2228], │ │ │ │ │ "832585": 2204, │ │ │ │ │ "8327": 2226, │ │ │ │ │ "832706": 2207, │ │ │ │ │ "833069": 2207, │ │ │ │ │ @@ -36297,15 +36296,15 @@ │ │ │ │ │ "938819": 2204, │ │ │ │ │ "939": 2230, │ │ │ │ │ "939036": 2207, │ │ │ │ │ "939145": 2207, │ │ │ │ │ "939470": 2199, │ │ │ │ │ "939652": 2207, │ │ │ │ │ "9398": 2225, │ │ │ │ │ - "94": [15, 282, 2184, 2185, 2186, 2188, 2191, 2192, 2193, 2195, 2197, 2199, 2200, 2201, 2202, 2204, 2207, 2208, 2209, 2210, 2211, 2218, 2220, 2222, 2226, 2230, 2232, 2235, 2246], │ │ │ │ │ + "94": [15, 282, 2184, 2185, 2186, 2188, 2191, 2192, 2195, 2197, 2199, 2200, 2201, 2202, 2204, 2207, 2208, 2209, 2210, 2211, 2218, 2220, 2222, 2226, 2230, 2232, 2235, 2246], │ │ │ │ │ "9402": 2228, │ │ │ │ │ "941248": 2199, │ │ │ │ │ "9413": 2238, │ │ │ │ │ "941451": 2210, │ │ │ │ │ "9416": 2228, │ │ │ │ │ "9422": 2238, │ │ │ │ │ "942321": 2207, │ │ │ │ │ @@ -36939,15 +36938,15 @@ │ │ │ │ │ "_get_numeric_data": 2218, │ │ │ │ │ "_get_object_pars": 2199, │ │ │ │ │ "_get_opt": [2202, 2298], │ │ │ │ │ "_get_pyarrow_opt": [2203, 2298], │ │ │ │ │ "_get_root": 2202, │ │ │ │ │ "_get_single_kei": 2202, │ │ │ │ │ "_get_slice_axi": [2185, 2197], │ │ │ │ │ - "_get_valu": [2185, 2191, 2193, 2194, 2197], │ │ │ │ │ + "_get_valu": [2185, 2191, 2194, 2197], │ │ │ │ │ "_getbool_axi": [2185, 2197], │ │ │ │ │ "_getitem_axi": [2185, 2197], │ │ │ │ │ "_getitem_lowerdim": [2185, 2197], │ │ │ │ │ "_getitem_tupl": [2185, 2197], │ │ │ │ │ "_getitem_tuple_same_dim": 2185, │ │ │ │ │ "_handled_typ": 1031, │ │ │ │ │ "_has_inf": 2221, │ │ │ │ │ @@ -37082,15 +37081,15 @@ │ │ │ │ │ "_validate_integ": 2197, │ │ │ │ │ "_validate_kei": [2185, 2197], │ │ │ │ │ "_validate_nam": [16, 17, 18, 19, 2199, 2203, 2232, 2235, 2298], │ │ │ │ │ "_validate_parse_dates_pres": 2199, │ │ │ │ │ "_validate_tuple_index": 2197, │ │ │ │ │ "_validate_usecols_nam": 2199, │ │ │ │ │ "_validate_validate_kwd": 2200, │ │ │ │ │ - "_valu": [12, 1031, 2185, 2186, 2191, 2194], │ │ │ │ │ + "_valu": [12, 1031, 2185, 2186, 2191, 2193, 2194], │ │ │ │ │ "_values_for_argsort": 1031, │ │ │ │ │ "_values_for_factor": [1031, 1039], │ │ │ │ │ "_verbose_info": 2218, │ │ │ │ │ "_verify_integr": 2249, │ │ │ │ │ "_where": 2199, │ │ │ │ │ "_window": 2235, │ │ │ │ │ "_wrap_arrai": 2218, │ │ │ │ │ @@ -40898,14 +40897,15 @@ │ │ │ │ │ "interf": 2265, │ │ │ │ │ "interfac": [2, 10, 12, 13, 16, 17, 18, 19, 40, 77, 119, 695, 914, 1031, 1068, 1090, 2167, 2186, 2199, 2203, 2207, 2210, 2211, 2218, 2220, 2225, 2227, 2228, 2230, 2235, 2246, 2261, 2271, 2298, 2307], │ │ │ │ │ "interleav": 2199, │ │ │ │ │ "intermedi": [7, 2172, 2195, 2205, 2210, 2212, 2253, 2307], │ │ │ │ │ "intermix": 2186, │ │ │ │ │ "intern": [0, 7, 11, 22, 191, 194, 203, 268, 286, 364, 376, 430, 622, 624, 699, 767, 769, 873, 932, 938, 1031, 1044, 1123, 1124, 1140, 1148, 1149, 1203, 1207, 1208, 1213, 1215, 1264, 1280, 1345, 1361, 1364, 1388, 1391, 1422, 1423, 1433, 1469, 1486, 1488, 1490, 1493, 1494, 1495, 1496, 1499, 2186, 2188, 2193, 2194, 2195, 2197, 2202, 2207, 2210, 2213, 2216, 2217, 2219, 2220, 2230, 2232, 2235, 2238, 2246, 2249, 2253, 2261, 2263, 2265, 2267, 2271, 2274, 2277, 2280, 2289, 2293, 2298, 2307], │ │ │ │ │ "internal_cach": 10, │ │ │ │ │ + "internal_valu": 2193, │ │ │ │ │ "internet": 2, │ │ │ │ │ "interoper": [2167, 2186, 2201, 2203, 2302], │ │ │ │ │ "interp1d": [146, 720, 1280], │ │ │ │ │ "interp_": 2201, │ │ │ │ │ "interpol": [89, 124, 125, 169, 202, 601, 700, 701, 776, 1031, 1190, 1251, 1275, 1314, 1331, 1411, 1446, 1447, 1448, 2186, 2199, 2210, 2214, 2217, 2218, 2219, 2220, 2222, 2228, 2230, 2231, 2235, 2236, 2249, 2250, 2261, 2265, 2271, 2272, 2277, 2283, 2289, 2294, 2298, 2302, 2303, 2304, 2307], │ │ │ │ │ "interpret": [2, 3, 6, 13, 16, 17, 18, 19, 24, 31, 134, 160, 212, 256, 568, 709, 738, 750, 787, 862, 866, 888, 1463, 1469, 1470, 1486, 1487, 2185, 2188, 2197, 2199, 2201, 2202, 2206, 2212, 2214, 2216, 2217, 2218, 2220, 2221, 2222, 2226, 2228, 2232, 2235, 2236, 2238, 2241, 2246, 2249, 2265, 2283, 2294, 2298, 2302], │ │ │ │ │ "interrog": [168, 407, 745], │ │ │ ├── ./usr/share/doc/python-pandas-doc/html/user_guide/advanced.html │ │ │ │ @@ -1856,25 +1856,25 @@ │ │ │ │ In [141]: indexer = np.arange(10000) │ │ │ │ │ │ │ │ In [142]: random.shuffle(indexer) │ │ │ │ │ │ │ │ In [143]: %timeit arr[indexer] │ │ │ │ .....: %timeit arr.take(indexer, axis=0) │ │ │ │ .....: │ │ │ │ -213 us +- 21.2 us per loop (mean +- std. dev. of 7 runs, 10,000 loops each) │ │ │ │ -87.3 us +- 15.3 us per loop (mean +- std. dev. of 7 runs, 10,000 loops each) │ │ │ │ +247 us +- 35.8 us per loop (mean +- std. dev. of 7 runs, 1,000 loops each) │ │ │ │ +107 us +- 10 us per loop (mean +- std. dev. of 7 runs, 10,000 loops each) │ │ │ │ │ │ │ │ │ │ │ │
In [144]: ser = pd.Series(arr[:, 0])
│ │ │ │
│ │ │ │ In [145]: %timeit ser.iloc[indexer]
│ │ │ │ .....: %timeit ser.take(indexer)
│ │ │ │ .....:
│ │ │ │ -189 us +- 53 us per loop (mean +- std. dev. of 7 runs, 1,000 loops each)
│ │ │ │ -145 us +- 20.9 us per loop (mean +- std. dev. of 7 runs, 10,000 loops each)
│ │ │ │ +187 us +- 32.3 us per loop (mean +- std. dev. of 7 runs, 1,000 loops each)
│ │ │ │ +171 us +- 15.1 us per loop (mean +- std. dev. of 7 runs, 10,000 loops each)
│ │ │ │
We have discussed MultiIndex
in the previous sections pretty extensively.
│ │ │ │ Documentation about DatetimeIndex
and PeriodIndex
are shown here,
│ │ │ │ ├── html2text {}
│ │ │ │ │ @@ -1241,23 +1241,23 @@
│ │ │ │ │ In [141]: indexer = np.arange(10000)
│ │ │ │ │
│ │ │ │ │ In [142]: random.shuffle(indexer)
│ │ │ │ │
│ │ │ │ │ In [143]: %timeit arr[indexer]
│ │ │ │ │ .....: %timeit arr.take(indexer, axis=0)
│ │ │ │ │ .....:
│ │ │ │ │ -213 us +- 21.2 us per loop (mean +- std. dev. of 7 runs, 10,000 loops each)
│ │ │ │ │ -87.3 us +- 15.3 us per loop (mean +- std. dev. of 7 runs, 10,000 loops each)
│ │ │ │ │ +247 us +- 35.8 us per loop (mean +- std. dev. of 7 runs, 1,000 loops each)
│ │ │ │ │ +107 us +- 10 us per loop (mean +- std. dev. of 7 runs, 10,000 loops each)
│ │ │ │ │ In [144]: ser = pd.Series(arr[:, 0])
│ │ │ │ │
│ │ │ │ │ In [145]: %timeit ser.iloc[indexer]
│ │ │ │ │ .....: %timeit ser.take(indexer)
│ │ │ │ │ .....:
│ │ │ │ │ -189 us +- 53 us per loop (mean +- std. dev. of 7 runs, 1,000 loops each)
│ │ │ │ │ -145 us +- 20.9 us per loop (mean +- std. dev. of 7 runs, 10,000 loops each)
│ │ │ │ │ +187 us +- 32.3 us per loop (mean +- std. dev. of 7 runs, 1,000 loops each)
│ │ │ │ │ +171 us +- 15.1 us per loop (mean +- std. dev. of 7 runs, 10,000 loops each)
│ │ │ │ │ ********** IInnddeexx ttyyppeess_## **********
│ │ │ │ │ We have discussed MultiIndex in the previous sections pretty extensively.
│ │ │ │ │ Documentation about DatetimeIndex and PeriodIndex are shown _h_e_r_e, and
│ │ │ │ │ documentation about TimedeltaIndex is found _h_e_r_e.
│ │ │ │ │ In the following sub-sections we will highlight some other index types.
│ │ │ │ │ ******** CCaatteeggoorriiccaallIInnddeexx_## ********
│ │ │ │ │ _C_a_t_e_g_o_r_i_c_a_l_I_n_d_e_x is a type of index that is useful for supporting indexing with
│ │ │ ├── ./usr/share/doc/python-pandas-doc/html/user_guide/enhancingperf.html
│ │ │ │ @@ -601,31 +601,31 @@
│ │ │ │ ...: s += f(a + i * dx)
│ │ │ │ ...: return s * dx
│ │ │ │ ...:
│ │ │ │
│ │ │ │
│ │ │ │
We achieve our result by using DataFrame.apply()
(row-wise):
In [5]: %timeit df.apply(lambda x: integrate_f(x["a"], x["b"], x["N"]), axis=1)
│ │ │ │ -149 ms +- 446 us per loop (mean +- std. dev. of 7 runs, 10 loops each)
│ │ │ │ +164 ms +- 38.6 ms per loop (mean +- std. dev. of 7 runs, 10 loops each)
│ │ │ │
Let’s take a look and see where the time is spent during this operation │ │ │ │ using the prun ipython magic function:
│ │ │ │# most time consuming 4 calls
│ │ │ │ In [6]: %prun -l 4 df.apply(lambda x: integrate_f(x["a"], x["b"], x["N"]), axis=1) # noqa E999
│ │ │ │ - 605951 function calls (605933 primitive calls) in 0.279 seconds
│ │ │ │ + 605951 function calls (605933 primitive calls) in 0.472 seconds
│ │ │ │
│ │ │ │ Ordered by: internal time
│ │ │ │ List reduced from 159 to 4 due to restriction <4>
│ │ │ │
│ │ │ │ ncalls tottime percall cumtime percall filename:lineno(function)
│ │ │ │ - 1000 0.177 0.000 0.238 0.000 <ipython-input-4-c2a74e076cf0>:1(integrate_f)
│ │ │ │ - 552423 0.062 0.000 0.062 0.000 <ipython-input-3-c138bdd570e3>:1(f)
│ │ │ │ - 1 0.009 0.009 0.278 0.278 apply.py:1070(apply_series_generator)
│ │ │ │ - 1000 0.009 0.000 0.009 0.000 managers.py:2065(set_values)
│ │ │ │ + 1000 0.284 0.000 0.387 0.000 <ipython-input-4-c2a74e076cf0>:1(integrate_f)
│ │ │ │ + 552423 0.104 0.000 0.104 0.000 <ipython-input-3-c138bdd570e3>:1(f)
│ │ │ │ + 1 0.034 0.034 0.462 0.462 apply.py:1070(apply_series_generator)
│ │ │ │ + 3000 0.009 0.000 0.010 0.000 series.py:831(_values)
│ │ │ │
By far the majority of time is spend inside either integrate_f
or f
,
│ │ │ │ hence we’ll concentrate our efforts cythonizing these two functions.
In [9]: %timeit df.apply(lambda x: integrate_f_plain(x["a"], x["b"], x["N"]), axis=1)
│ │ │ │ -94.3 ms +- 19.6 ms per loop (mean +- std. dev. of 7 runs, 10 loops each)
│ │ │ │ +124 ms +- 17.2 ms per loop (mean +- std. dev. of 7 runs, 10 loops each)
│ │ │ │
This has improved the performance compared to the pure Python approach by one-third.
│ │ │ │We can annotate the function variables and return types as well as use cdef
│ │ │ │ @@ -667,36 +667,36 @@
│ │ │ │ ....: for i in range(N):
│ │ │ │ ....: s += f_typed(a + i * dx)
│ │ │ │ ....: return s * dx
│ │ │ │ ....:
│ │ │ │
│ │ │ │
│ │ │ │
In [11]: %timeit df.apply(lambda x: integrate_f_typed(x["a"], x["b"], x["N"]), axis=1)
│ │ │ │ -10.7 ms +- 1.9 ms per loop (mean +- std. dev. of 7 runs, 100 loops each)
│ │ │ │ +11.5 ms +- 1.92 ms per loop (mean +- std. dev. of 7 runs, 10 loops each)
│ │ │ │
Annotating the functions with C types yields an over ten times performance improvement compared to │ │ │ │ the original Python implementation.
│ │ │ │When re-profiling, time is spent creating a Series
from each row, and calling __getitem__
from both
│ │ │ │ the index and the series (three times for each row). These Python function calls are expensive and
│ │ │ │ can be improved by passing an np.ndarray
.
In [12]: %prun -l 4 df.apply(lambda x: integrate_f_typed(x["a"], x["b"], x["N"]), axis=1)
│ │ │ │ - 52528 function calls (52510 primitive calls) in 0.024 seconds
│ │ │ │ + 52528 function calls (52510 primitive calls) in 0.054 seconds
│ │ │ │
│ │ │ │ Ordered by: internal time
│ │ │ │ List reduced from 157 to 4 due to restriction <4>
│ │ │ │
│ │ │ │ ncalls tottime percall cumtime percall filename:lineno(function)
│ │ │ │ - 3000 0.004 0.000 0.015 0.000 series.py:1095(__getitem__)
│ │ │ │ - 3000 0.003 0.000 0.007 0.000 series.py:1220(_get_value)
│ │ │ │ - 16098 0.002 0.000 0.003 0.000 {built-in method builtins.isinstance}
│ │ │ │ - 3000 0.002 0.000 0.003 0.000 base.py:3777(get_loc)
│ │ │ │ + 3000 0.009 0.000 0.009 0.000 managers.py:2004(internal_values)
│ │ │ │ + 1000 0.009 0.000 0.009 0.000 managers.py:2065(set_values)
│ │ │ │ + 3000 0.006 0.000 0.007 0.000 base.py:3777(get_loc)
│ │ │ │ + 16098 0.006 0.000 0.007 0.000 {built-in method builtins.isinstance}
│ │ │ │
In [13]: %%cython
│ │ │ │ ....: cimport numpy as np
│ │ │ │ ....: import numpy as np
│ │ │ │ ....: cdef double f_typed(double x) except? -2:
│ │ │ │ ....: return x * (x - 1)
│ │ │ │ @@ -731,25 +731,25 @@
│ │ │ │
This implementation creates an array of zeros and inserts the result
│ │ │ │ of integrate_f_typed
applied over each row. Looping over an ndarray
is faster
│ │ │ │ in Cython than looping over a Series
object.
Since apply_integrate_f
is typed to accept an np.ndarray
, Series.to_numpy()
│ │ │ │ calls are needed to utilize this function.
In [14]: %timeit apply_integrate_f(df["a"].to_numpy(), df["b"].to_numpy(), df["N"].to_numpy())
│ │ │ │ -1.25 ms +- 68.6 us per loop (mean +- std. dev. of 7 runs, 1,000 loops each)
│ │ │ │ +1.6 ms +- 110 us per loop (mean +- std. dev. of 7 runs, 1,000 loops each)
│ │ │ │
Performance has improved from the prior implementation by almost ten times.
│ │ │ │ │ │ │ │The majority of the time is now spent in apply_integrate_f
. Disabling Cython’s boundscheck
│ │ │ │ and wraparound
checks can yield more performance.
In [15]: %prun -l 4 apply_integrate_f(df["a"].to_numpy(), df["b"].to_numpy(), df["N"].to_numpy())
│ │ │ │ - 78 function calls in 0.002 seconds
│ │ │ │ + 78 function calls in 0.001 seconds
│ │ │ │
│ │ │ │ Ordered by: internal time
│ │ │ │ List reduced from 21 to 4 due to restriction <4>
│ │ │ │
│ │ │ │ ncalls tottime percall cumtime percall filename:lineno(function)
│ │ │ │ 1 0.001 0.001 0.001 0.001 <string>:1(<module>)
│ │ │ │ 1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects}
│ │ │ │ @@ -791,15 +791,15 @@
│ │ │ │ from /build/reproducible-path/pandas-2.2.3+dfsg/buildtmp/.cache/ipython/cython/_cython_magic_1beb7d842bd69f96ce1bb2d1a0cb43e06025bd15.c:1251:
│ │ │ │ /usr/lib/python3/dist-packages/numpy/core/include/numpy/npy_1_7_deprecated_api.h:17:2: warning: #warning "Using deprecated NumPy API, disable it with " "#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION" [-Wcpp]
│ │ │ │ 17 | #warning "Using deprecated NumPy API, disable it with " \
│ │ │ │ | ^~~~~~~
│ │ │ │
In [17]: %timeit apply_integrate_f_wrap(df["a"].to_numpy(), df["b"].to_numpy(), df["N"].to_numpy())
│ │ │ │ -829 us +- 12.3 us per loop (mean +- std. dev. of 7 runs, 1,000 loops each)
│ │ │ │ +1.1 ms +- 113 us per loop (mean +- std. dev. of 7 runs, 1,000 loops each)
│ │ │ │
However, a loop indexer i
accessing an invalid location in an array would cause a segfault because memory access isn’t checked.
│ │ │ │ For more about boundscheck
and wraparound
, see the Cython docs on
│ │ │ │ compiler directives.
DataFrame
. This engine requires the
│ │ │ │ optional dependency numexpr
to be installed.
│ │ │ │ The 'python'
engine is generally not useful except for testing
│ │ │ │ other evaluation engines against it. You will achieve no performance
│ │ │ │ benefits using eval()
with engine='python'
and may
│ │ │ │ incur a performance hit.
In [40]: %timeit df1 + df2 + df3 + df4
│ │ │ │ -34.6 ms +- 6.6 ms per loop (mean +- std. dev. of 7 runs, 10 loops each)
│ │ │ │ +21.1 ms +- 1.11 ms per loop (mean +- std. dev. of 7 runs, 100 loops each)
│ │ │ │
In [41]: %timeit pd.eval("df1 + df2 + df3 + df4", engine="python")
│ │ │ │ -37.6 ms +- 6.17 ms per loop (mean +- std. dev. of 7 runs, 10 loops each)
│ │ │ │ +23.9 ms +- 4.16 ms per loop (mean +- std. dev. of 7 runs, 10 loops each)
│ │ │ │
DataFrame.eval()
method#In addition to the top level pandas.eval()
function you can also
│ │ │ │ evaluate an expression in the “context” of a DataFrame
.
In [58]: nrows, ncols = 20000, 100
│ │ │ │
│ │ │ │ In [59]: df1, df2, df3, df4 = [pd.DataFrame(np.random.randn(nrows, ncols)) for _ in range(4)]
│ │ │ │
DataFrame
arithmetic:
In [60]: %timeit df1 + df2 + df3 + df4
│ │ │ │ -32.5 ms +- 1.94 ms per loop (mean +- std. dev. of 7 runs, 10 loops each)
│ │ │ │ +23.5 ms +- 4.58 ms per loop (mean +- std. dev. of 7 runs, 10 loops each)
│ │ │ │
In [61]: %timeit pd.eval("df1 + df2 + df3 + df4")
│ │ │ │ -13.5 ms +- 533 us per loop (mean +- std. dev. of 7 runs, 100 loops each)
│ │ │ │ +11.5 ms +- 496 us per loop (mean +- std. dev. of 7 runs, 100 loops each)
│ │ │ │
DataFrame
comparison:
In [62]: %timeit (df1 > 0) & (df2 > 0) & (df3 > 0) & (df4 > 0)
│ │ │ │ -53.9 ms +- 7 ms per loop (mean +- std. dev. of 7 runs, 10 loops each)
│ │ │ │ +24.1 ms +- 2.23 ms per loop (mean +- std. dev. of 7 runs, 10 loops each)
│ │ │ │
In [63]: %timeit pd.eval("(df1 > 0) & (df2 > 0) & (df3 > 0) & (df4 > 0)")
│ │ │ │ -15.7 ms +- 1.52 ms per loop (mean +- std. dev. of 7 runs, 100 loops each)
│ │ │ │ +19.8 ms +- 1.73 ms per loop (mean +- std. dev. of 7 runs, 100 loops each)
│ │ │ │
DataFrame
arithmetic with unaligned axes.
In [64]: s = pd.Series(np.random.randn(50))
│ │ │ │
│ │ │ │ In [65]: %timeit df1 + df2 + df3 + df4 + s
│ │ │ │ -37.1 ms +- 4.53 ms per loop (mean +- std. dev. of 7 runs, 10 loops each)
│ │ │ │ +31.7 ms +- 4.35 ms per loop (mean +- std. dev. of 7 runs, 10 loops each)
│ │ │ │
In [66]: %timeit pd.eval("df1 + df2 + df3 + df4 + s")
│ │ │ │ -13.3 ms +- 240 us per loop (mean +- std. dev. of 7 runs, 100 loops each)
│ │ │ │ +13.2 ms +- 406 us per loop (mean +- std. dev. of 7 runs, 100 loops each)
│ │ │ │
Note
│ │ │ │Operations such as
│ │ │ │1 and 2 # would parse to 1 & 2, but should evaluate to 2
│ │ │ │ 3 or 4 # would parse to 3 | 4, but should evaluate to 3
│ │ │ │ ├── html2text {}
│ │ │ │ │ @@ -106,33 +106,33 @@
│ │ │ │ │ ...: dx = (b - a) / N
│ │ │ │ │ ...: for i in range(N):
│ │ │ │ │ ...: s += f(a + i * dx)
│ │ │ │ │ ...: return s * dx
│ │ │ │ │ ...:
│ │ │ │ │ We achieve our result by using _D_a_t_a_F_r_a_m_e_._a_p_p_l_y_(_) (row-wise):
│ │ │ │ │ In [5]: %timeit df.apply(lambda x: integrate_f(x["a"], x["b"], x["N"]), axis=1)
│ │ │ │ │ -149 ms +- 446 us per loop (mean +- std. dev. of 7 runs, 10 loops each)
│ │ │ │ │ +164 ms +- 38.6 ms per loop (mean +- std. dev. of 7 runs, 10 loops each)
│ │ │ │ │ Let’s take a look and see where the time is spent during this operation using
│ │ │ │ │ the _p_r_u_n_ _i_p_y_t_h_o_n_ _m_a_g_i_c_ _f_u_n_c_t_i_o_n:
│ │ │ │ │ # most time consuming 4 calls
│ │ │ │ │ In [6]: %prun -l 4 df.apply(lambda x: integrate_f(x["a"], x["b"], x["N"]),
│ │ │ │ │ axis=1) # noqa E999
│ │ │ │ │ - 605951 function calls (605933 primitive calls) in 0.279 seconds
│ │ │ │ │ + 605951 function calls (605933 primitive calls) in 0.472 seconds
│ │ │ │ │
│ │ │ │ │ Ordered by: internal time
│ │ │ │ │ List reduced from 159 to 4 due to restriction <4>
│ │ │ │ │
│ │ │ │ │ ncalls tottime percall cumtime percall filename:lineno(function)
│ │ │ │ │ - 1000 0.177 0.000 0.238 0.000 :1
│ │ │ │ │ + 1000 0.284 0.000 0.387 0.000 :1
│ │ │ │ │ (integrate_f)
│ │ │ │ │ - 552423 0.062 0.000 0.062 0.000 :1
│ │ │ │ │ + 552423 0.104 0.000 0.104 0.000 :1
│ │ │ │ │ (f)
│ │ │ │ │ - 1 0.009 0.009 0.278 0.278 apply.py:1070
│ │ │ │ │ + 1 0.034 0.034 0.462 0.462 apply.py:1070
│ │ │ │ │ (apply_series_generator)
│ │ │ │ │ - 1000 0.009 0.000 0.009 0.000 managers.py:2065(set_values)
│ │ │ │ │ + 3000 0.009 0.000 0.010 0.000 series.py:831(_values)
│ │ │ │ │ By far the majority of time is spend inside either integrate_f or f, hence
│ │ │ │ │ we’ll concentrate our efforts cythonizing these two functions.
│ │ │ │ │ ******** PPllaaiinn CCyytthhoonn_## ********
│ │ │ │ │ First we’re going to need to import the Cython magic function to IPython:
│ │ │ │ │ In [7]: %load_ext Cython
│ │ │ │ │ Now, let’s simply copy our functions over to Cython:
│ │ │ │ │ In [8]: %%cython
│ │ │ │ │ @@ -143,15 +143,15 @@
│ │ │ │ │ ...: dx = (b - a) / N
│ │ │ │ │ ...: for i in range(N):
│ │ │ │ │ ...: s += f_plain(a + i * dx)
│ │ │ │ │ ...: return s * dx
│ │ │ │ │ ...:
│ │ │ │ │ In [9]: %timeit df.apply(lambda x: integrate_f_plain(x["a"], x["b"], x["N"]),
│ │ │ │ │ axis=1)
│ │ │ │ │ -94.3 ms +- 19.6 ms per loop (mean +- std. dev. of 7 runs, 10 loops each)
│ │ │ │ │ +124 ms +- 17.2 ms per loop (mean +- std. dev. of 7 runs, 10 loops each)
│ │ │ │ │ This has improved the performance compared to the pure Python approach by one-
│ │ │ │ │ third.
│ │ │ │ │ ******** DDeeccllaarriinngg CC ttyyppeess_## ********
│ │ │ │ │ We can annotate the function variables and return types as well as use cdef and
│ │ │ │ │ cpdef to improve performance:
│ │ │ │ │ In [10]: %%cython
│ │ │ │ │ ....: cdef double f_typed(double x) except? -2:
│ │ │ │ │ @@ -163,35 +163,35 @@
│ │ │ │ │ ....: dx = (b - a) / N
│ │ │ │ │ ....: for i in range(N):
│ │ │ │ │ ....: s += f_typed(a + i * dx)
│ │ │ │ │ ....: return s * dx
│ │ │ │ │ ....:
│ │ │ │ │ In [11]: %timeit df.apply(lambda x: integrate_f_typed(x["a"], x["b"], x["N"]),
│ │ │ │ │ axis=1)
│ │ │ │ │ -10.7 ms +- 1.9 ms per loop (mean +- std. dev. of 7 runs, 100 loops each)
│ │ │ │ │ +11.5 ms +- 1.92 ms per loop (mean +- std. dev. of 7 runs, 10 loops each)
│ │ │ │ │ Annotating the functions with C types yields an over ten times performance
│ │ │ │ │ improvement compared to the original Python implementation.
│ │ │ │ │ ******** UUssiinngg nnddaarrrraayy_## ********
│ │ │ │ │ When re-profiling, time is spent creating a _S_e_r_i_e_s from each row, and calling
│ │ │ │ │ __getitem__ from both the index and the series (three times for each row).
│ │ │ │ │ These Python function calls are expensive and can be improved by passing an
│ │ │ │ │ np.ndarray.
│ │ │ │ │ In [12]: %prun -l 4 df.apply(lambda x: integrate_f_typed(x["a"], x["b"], x
│ │ │ │ │ ["N"]), axis=1)
│ │ │ │ │ - 52528 function calls (52510 primitive calls) in 0.024 seconds
│ │ │ │ │ + 52528 function calls (52510 primitive calls) in 0.054 seconds
│ │ │ │ │
│ │ │ │ │ Ordered by: internal time
│ │ │ │ │ List reduced from 157 to 4 due to restriction <4>
│ │ │ │ │
│ │ │ │ │ ncalls tottime percall cumtime percall filename:lineno(function)
│ │ │ │ │ - 3000 0.004 0.000 0.015 0.000 series.py:1095(__getitem__)
│ │ │ │ │ - 3000 0.003 0.000 0.007 0.000 series.py:1220(_get_value)
│ │ │ │ │ - 16098 0.002 0.000 0.003 0.000 {built-in method
│ │ │ │ │ + 3000 0.009 0.000 0.009 0.000 managers.py:2004(internal_values)
│ │ │ │ │ + 1000 0.009 0.000 0.009 0.000 managers.py:2065(set_values)
│ │ │ │ │ + 3000 0.006 0.000 0.007 0.000 base.py:3777(get_loc)
│ │ │ │ │ + 16098 0.006 0.000 0.007 0.000 {built-in method
│ │ │ │ │ builtins.isinstance}
│ │ │ │ │ - 3000 0.002 0.000 0.003 0.000 base.py:3777(get_loc)
│ │ │ │ │ In [13]: %%cython
│ │ │ │ │ ....: cimport numpy as np
│ │ │ │ │ ....: import numpy as np
│ │ │ │ │ ....: cdef double f_typed(double x) except? -2:
│ │ │ │ │ ....: return x * (x - 1)
│ │ │ │ │ ....: cpdef double integrate_f_typed(double a, double b, int N):
│ │ │ │ │ ....: cdef int i
│ │ │ │ │ @@ -232,22 +232,22 @@
│ │ │ │ │ This implementation creates an array of zeros and inserts the result of
│ │ │ │ │ integrate_f_typed applied over each row. Looping over an ndarray is faster in
│ │ │ │ │ Cython than looping over a _S_e_r_i_e_s object.
│ │ │ │ │ Since apply_integrate_f is typed to accept an np.ndarray, _S_e_r_i_e_s_._t_o___n_u_m_p_y_(_)
│ │ │ │ │ calls are needed to utilize this function.
│ │ │ │ │ In [14]: %timeit apply_integrate_f(df["a"].to_numpy(), df["b"].to_numpy(), df
│ │ │ │ │ ["N"].to_numpy())
│ │ │ │ │ -1.25 ms +- 68.6 us per loop (mean +- std. dev. of 7 runs, 1,000 loops each)
│ │ │ │ │ +1.6 ms +- 110 us per loop (mean +- std. dev. of 7 runs, 1,000 loops each)
│ │ │ │ │ Performance has improved from the prior implementation by almost ten times.
│ │ │ │ │ ******** DDiissaabblliinngg ccoommppiilleerr ddiirreeccttiivveess_## ********
│ │ │ │ │ The majority of the time is now spent in apply_integrate_f. Disabling Cython’s
│ │ │ │ │ boundscheck and wraparound checks can yield more performance.
│ │ │ │ │ In [15]: %prun -l 4 apply_integrate_f(df["a"].to_numpy(), df["b"].to_numpy(),
│ │ │ │ │ df["N"].to_numpy())
│ │ │ │ │ - 78 function calls in 0.002 seconds
│ │ │ │ │ + 78 function calls in 0.001 seconds
│ │ │ │ │
│ │ │ │ │ Ordered by: internal time
│ │ │ │ │ List reduced from 21 to 4 due to restriction <4>
│ │ │ │ │
│ │ │ │ │ ncalls tottime percall cumtime percall filename:lineno(function)
│ │ │ │ │ 1 0.001 0.001 0.001 0.001 :1()
│ │ │ │ │ 1 0.000 0.000 0.000 0.000 {method 'disable' of
│ │ │ │ │ @@ -295,15 +295,15 @@
│ │ │ │ │ /usr/lib/python3/dist-packages/numpy/core/include/numpy/
│ │ │ │ │ npy_1_7_deprecated_api.h:17:2: warning: #warning "Using deprecated NumPy API,
│ │ │ │ │ disable it with " "#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION" [-Wcpp]
│ │ │ │ │ 17 | #warning "Using deprecated NumPy API, disable it with " \
│ │ │ │ │ | ^~~~~~~
│ │ │ │ │ In [17]: %timeit apply_integrate_f_wrap(df["a"].to_numpy(), df["b"].to_numpy(),
│ │ │ │ │ df["N"].to_numpy())
│ │ │ │ │ -829 us +- 12.3 us per loop (mean +- std. dev. of 7 runs, 1,000 loops each)
│ │ │ │ │ +1.1 ms +- 113 us per loop (mean +- std. dev. of 7 runs, 1,000 loops each)
│ │ │ │ │ However, a loop indexer i accessing an invalid location in an array would cause
│ │ │ │ │ a segfault because memory access isn’t checked. For more about boundscheck and
│ │ │ │ │ wraparound, see the Cython docs on _c_o_m_p_i_l_e_r_ _d_i_r_e_c_t_i_v_e_s.
│ │ │ │ │ ********** NNuummbbaa ((JJIITT ccoommppiillaattiioonn))_## **********
│ │ │ │ │ An alternative to statically compiling Cython code is to use a dynamic just-in-
│ │ │ │ │ time (JIT) compiler with _N_u_m_b_a.
│ │ │ │ │ Numba allows you to write a pure Python function which can be JIT compiled to
│ │ │ │ │ @@ -606,17 +606,17 @@
│ │ │ │ │ The 'numexpr' engine is the more performant engine that can yield performance
│ │ │ │ │ improvements compared to standard Python syntax for large _D_a_t_a_F_r_a_m_e. This
│ │ │ │ │ engine requires the optional dependency numexpr to be installed.
│ │ │ │ │ The 'python' engine is generally nnoott useful except for testing other evaluation
│ │ │ │ │ engines against it. You will achieve nnoo performance benefits using _e_v_a_l_(_) with
│ │ │ │ │ engine='python' and may incur a performance hit.
│ │ │ │ │ In [40]: %timeit df1 + df2 + df3 + df4
│ │ │ │ │ -34.6 ms +- 6.6 ms per loop (mean +- std. dev. of 7 runs, 10 loops each)
│ │ │ │ │ +21.1 ms +- 1.11 ms per loop (mean +- std. dev. of 7 runs, 100 loops each)
│ │ │ │ │ In [41]: %timeit pd.eval("df1 + df2 + df3 + df4", engine="python")
│ │ │ │ │ -37.6 ms +- 6.17 ms per loop (mean +- std. dev. of 7 runs, 10 loops each)
│ │ │ │ │ +23.9 ms +- 4.16 ms per loop (mean +- std. dev. of 7 runs, 10 loops each)
│ │ │ │ │ ******** TThhee _DD_aa_tt_aa_FF_rr_aa_mm_ee_.._ee_vv_aa_ll_((_)) mmeetthhoodd_## ********
│ │ │ │ │ In addition to the top level _p_a_n_d_a_s_._e_v_a_l_(_) function you can also evaluate an
│ │ │ │ │ expression in the “context” of a _D_a_t_a_F_r_a_m_e.
│ │ │ │ │ In [42]: df = pd.DataFrame(np.random.randn(5, 2), columns=["a", "b"])
│ │ │ │ │
│ │ │ │ │ In [43]: df.eval("a + b")
│ │ │ │ │ Out[43]:
│ │ │ │ │ @@ -713,29 +713,29 @@
│ │ │ │ │ _p_a_n_d_a_s_._e_v_a_l_(_) works well with expressions containing large arrays.
│ │ │ │ │ In [58]: nrows, ncols = 20000, 100
│ │ │ │ │
│ │ │ │ │ In [59]: df1, df2, df3, df4 = [pd.DataFrame(np.random.randn(nrows, ncols)) for
│ │ │ │ │ _ in range(4)]
│ │ │ │ │ _D_a_t_a_F_r_a_m_e arithmetic:
│ │ │ │ │ In [60]: %timeit df1 + df2 + df3 + df4
│ │ │ │ │ -32.5 ms +- 1.94 ms per loop (mean +- std. dev. of 7 runs, 10 loops each)
│ │ │ │ │ +23.5 ms +- 4.58 ms per loop (mean +- std. dev. of 7 runs, 10 loops each)
│ │ │ │ │ In [61]: %timeit pd.eval("df1 + df2 + df3 + df4")
│ │ │ │ │ -13.5 ms +- 533 us per loop (mean +- std. dev. of 7 runs, 100 loops each)
│ │ │ │ │ +11.5 ms +- 496 us per loop (mean +- std. dev. of 7 runs, 100 loops each)
│ │ │ │ │ _D_a_t_a_F_r_a_m_e comparison:
│ │ │ │ │ In [62]: %timeit (df1 > 0) & (df2 > 0) & (df3 > 0) & (df4 > 0)
│ │ │ │ │ -53.9 ms +- 7 ms per loop (mean +- std. dev. of 7 runs, 10 loops each)
│ │ │ │ │ +24.1 ms +- 2.23 ms per loop (mean +- std. dev. of 7 runs, 10 loops each)
│ │ │ │ │ In [63]: %timeit pd.eval("(df1 > 0) & (df2 > 0) & (df3 > 0) & (df4 > 0)")
│ │ │ │ │ -15.7 ms +- 1.52 ms per loop (mean +- std. dev. of 7 runs, 100 loops each)
│ │ │ │ │ +19.8 ms +- 1.73 ms per loop (mean +- std. dev. of 7 runs, 100 loops each)
│ │ │ │ │ _D_a_t_a_F_r_a_m_e arithmetic with unaligned axes.
│ │ │ │ │ In [64]: s = pd.Series(np.random.randn(50))
│ │ │ │ │
│ │ │ │ │ In [65]: %timeit df1 + df2 + df3 + df4 + s
│ │ │ │ │ -37.1 ms +- 4.53 ms per loop (mean +- std. dev. of 7 runs, 10 loops each)
│ │ │ │ │ +31.7 ms +- 4.35 ms per loop (mean +- std. dev. of 7 runs, 10 loops each)
│ │ │ │ │ In [66]: %timeit pd.eval("df1 + df2 + df3 + df4 + s")
│ │ │ │ │ -13.3 ms +- 240 us per loop (mean +- std. dev. of 7 runs, 100 loops each)
│ │ │ │ │ +13.2 ms +- 406 us per loop (mean +- std. dev. of 7 runs, 100 loops each)
│ │ │ │ │ Note
│ │ │ │ │ Operations such as
│ │ │ │ │ 1 and 2 # would parse to 1 & 2, but should evaluate to 2
│ │ │ │ │ 3 or 4 # would parse to 3 | 4, but should evaluate to 3
│ │ │ │ │ ~1 # this is okay, but slower when using eval
│ │ │ │ │ should be performed in Python. An exception will be raised if you try to
│ │ │ │ │ perform any boolean/bitwise operations with scalar operands that are not of
│ │ │ ├── ./usr/share/doc/python-pandas-doc/html/user_guide/scale.html
│ │ │ │ @@ -1095,16 +1095,16 @@
│ │ │ │ ....: files = pathlib.Path("data/timeseries/").glob("ts*.parquet")
│ │ │ │ ....: counts = pd.Series(dtype=int)
│ │ │ │ ....: for path in files:
│ │ │ │ ....: df = pd.read_parquet(path)
│ │ │ │ ....: counts = counts.add(df["name"].value_counts(), fill_value=0)
│ │ │ │ ....: counts.astype(int)
│ │ │ │ ....:
│ │ │ │ -CPU times: user 739 us, sys: 0 ns, total: 739 us
│ │ │ │ -Wall time: 759 us
│ │ │ │ +CPU times: user 592 us, sys: 55 us, total: 647 us
│ │ │ │ +Wall time: 665 us
│ │ │ │ Out[32]: Series([], dtype: int64)
│ │ │ │
Some readers, like pandas.read_csv()
, offer parameters to control the
│ │ │ │ chunksize
when reading a single file.
Manually chunking is an OK option for workflows that don’t
│ │ │ │ require too sophisticated of operations. Some operations, like pandas.DataFrame.groupby()
, are
│ │ │ │ ├── html2text {}
│ │ │ │ │ @@ -640,16 +640,16 @@
│ │ │ │ │ ....: files = pathlib.Path("data/timeseries/").glob("ts*.parquet")
│ │ │ │ │ ....: counts = pd.Series(dtype=int)
│ │ │ │ │ ....: for path in files:
│ │ │ │ │ ....: df = pd.read_parquet(path)
│ │ │ │ │ ....: counts = counts.add(df["name"].value_counts(), fill_value=0)
│ │ │ │ │ ....: counts.astype(int)
│ │ │ │ │ ....:
│ │ │ │ │ -CPU times: user 739 us, sys: 0 ns, total: 739 us
│ │ │ │ │ -Wall time: 759 us
│ │ │ │ │ +CPU times: user 592 us, sys: 55 us, total: 647 us
│ │ │ │ │ +Wall time: 665 us
│ │ │ │ │ Out[32]: Series([], dtype: int64)
│ │ │ │ │ Some readers, like _p_a_n_d_a_s_._r_e_a_d___c_s_v_(_), offer parameters to control the chunksize
│ │ │ │ │ when reading a single file.
│ │ │ │ │ Manually chunking is an OK option for workflows that don’t require too
│ │ │ │ │ sophisticated of operations. Some operations, like _p_a_n_d_a_s_._D_a_t_a_F_r_a_m_e_._g_r_o_u_p_b_y_(_),
│ │ │ │ │ are much harder to do chunkwise. In these cases, you may be better switching to
│ │ │ │ │ a different library that implements these out-of-core algorithms for you.
│ │ │ ├── ./usr/share/doc/python-pandas-doc/html/user_guide/style.ipynb.gz
│ │ │ │ ├── style.ipynb
│ │ │ │ │ ├── Pretty-printed
│ │ │ │ │ │┄ Similarity: 0.9985610875706213%
│ │ │ │ │ │┄ Differences: {"'cells'": "{1: {'metadata': {'execution': {'iopub.execute_input': '2024-11-06T13:30:01.980846Z', "
│ │ │ │ │ │┄ "'iopub.status.busy': '2024-11-06T13:30:01.980558Z', 'iopub.status.idle': "
│ │ │ │ │ │┄ "'2024-11-06T13:30:02.581327Z', 'shell.execute_reply': "
│ │ │ │ │ │┄ "'2024-11-06T13:30:02.580594Z'}}}, 3: {'metadata': {'execution': "
│ │ │ │ │ │┄ "{'iopub.execute_input': '2024-11-06T13:30:02.585213Z', 'iopub.status.busy': "
│ │ │ │ │ │┄ "'2024-11-06T13:30:02.584588Z', 'iopub.status.idle': '2024-11-06T13:30:0 […]
│ │ │ │ │ │ @@ -39,18 +39,18 @@
│ │ │ │ │ │ ]
│ │ │ │ │ │ },
│ │ │ │ │ │ {
│ │ │ │ │ │ "cell_type": "code",
│ │ │ │ │ │ "execution_count": 1,
│ │ │ │ │ │ "metadata": {
│ │ │ │ │ │ "execution": {
│ │ │ │ │ │ - "iopub.execute_input": "2025-12-09T18:24:27.489252Z",
│ │ │ │ │ │ - "iopub.status.busy": "2025-12-09T18:24:27.488975Z",
│ │ │ │ │ │ - "iopub.status.idle": "2025-12-09T18:24:28.040349Z",
│ │ │ │ │ │ - "shell.execute_reply": "2025-12-09T18:24:28.024318Z"
│ │ │ │ │ │ + "iopub.execute_input": "2024-11-06T13:30:01.980846Z",
│ │ │ │ │ │ + "iopub.status.busy": "2024-11-06T13:30:01.980558Z",
│ │ │ │ │ │ + "iopub.status.idle": "2024-11-06T13:30:02.581327Z",
│ │ │ │ │ │ + "shell.execute_reply": "2024-11-06T13:30:02.580594Z"
│ │ │ │ │ │ },
│ │ │ │ │ │ "nbsphinx": "hidden"
│ │ │ │ │ │ },
│ │ │ │ │ │ "outputs": [],
│ │ │ │ │ │ "source": [
│ │ │ │ │ │ "import matplotlib.pyplot\n",
│ │ │ │ │ │ "# We have this here to trigger matplotlib's font cache stuff.\n",
│ │ │ │ │ │ @@ -77,36 +77,36 @@
│ │ │ │ │ │ ]
│ │ │ │ │ │ },
│ │ │ │ │ │ {
│ │ │ │ │ │ "cell_type": "code",
│ │ │ │ │ │ "execution_count": 2,
│ │ │ │ │ │ "metadata": {
│ │ │ │ │ │ "execution": {
│ │ │ │ │ │ - "iopub.execute_input": "2025-12-09T18:24:28.065763Z",
│ │ │ │ │ │ - "iopub.status.busy": "2025-12-09T18:24:28.065068Z",
│ │ │ │ │ │ - "iopub.status.idle": "2025-12-09T18:24:28.396506Z",
│ │ │ │ │ │ - "shell.execute_reply": "2025-12-09T18:24:28.392336Z"
│ │ │ │ │ │ + "iopub.execute_input": "2024-11-06T13:30:02.585213Z",
│ │ │ │ │ │ + "iopub.status.busy": "2024-11-06T13:30:02.584588Z",
│ │ │ │ │ │ + "iopub.status.idle": "2024-11-06T13:30:02.936985Z",
│ │ │ │ │ │ + "shell.execute_reply": "2024-11-06T13:30:02.928588Z"
│ │ │ │ │ │ }
│ │ │ │ │ │ },
│ │ │ │ │ │ "outputs": [],
│ │ │ │ │ │ "source": [
│ │ │ │ │ │ "import pandas as pd\n",
│ │ │ │ │ │ "import numpy as np\n",
│ │ │ │ │ │ "import matplotlib as mpl\n"
│ │ │ │ │ │ ]
│ │ │ │ │ │ },
│ │ │ │ │ │ {
│ │ │ │ │ │ "cell_type": "code",
│ │ │ │ │ │ "execution_count": 3,
│ │ │ │ │ │ "metadata": {
│ │ │ │ │ │ "execution": {
│ │ │ │ │ │ - "iopub.execute_input": "2025-12-09T18:24:28.413412Z",
│ │ │ │ │ │ - "iopub.status.busy": "2025-12-09T18:24:28.413023Z",
│ │ │ │ │ │ - "iopub.status.idle": "2025-12-09T18:24:28.540334Z",
│ │ │ │ │ │ - "shell.execute_reply": "2025-12-09T18:24:28.524304Z"
│ │ │ │ │ │ + "iopub.execute_input": "2024-11-06T13:30:02.945406Z",
│ │ │ │ │ │ + "iopub.status.busy": "2024-11-06T13:30:02.945030Z",
│ │ │ │ │ │ + "iopub.status.idle": "2024-11-06T13:30:03.016362Z",
│ │ │ │ │ │ + "shell.execute_reply": "2024-11-06T13:30:03.008977Z"
│ │ │ │ │ │ },
│ │ │ │ │ │ "nbsphinx": "hidden"
│ │ │ │ │ │ },
│ │ │ │ │ │ "outputs": [],
│ │ │ │ │ │ "source": [
│ │ │ │ │ │ "# For reproducibility - this doesn't respect uuid_len or positionally-passed uuid but the places here that use that coincidentally bypass this anyway\n",
│ │ │ │ │ │ "from pandas.io.formats.style import Styler\n",
│ │ │ │ │ │ @@ -123,18 +123,18 @@
│ │ │ │ │ │ ]
│ │ │ │ │ │ },
│ │ │ │ │ │ {
│ │ │ │ │ │ "cell_type": "code",
│ │ │ │ │ │ "execution_count": 4,
│ │ │ │ │ │ "metadata": {
│ │ │ │ │ │ "execution": {
│ │ │ │ │ │ - "iopub.execute_input": "2025-12-09T18:24:28.553416Z",
│ │ │ │ │ │ - "iopub.status.busy": "2025-12-09T18:24:28.553030Z",
│ │ │ │ │ │ - "iopub.status.idle": "2025-12-09T18:24:28.608322Z",
│ │ │ │ │ │ - "shell.execute_reply": "2025-12-09T18:24:28.592305Z"
│ │ │ │ │ │ + "iopub.execute_input": "2024-11-06T13:30:03.028090Z",
│ │ │ │ │ │ + "iopub.status.busy": "2024-11-06T13:30:03.027745Z",
│ │ │ │ │ │ + "iopub.status.idle": "2024-11-06T13:30:03.060465Z",
│ │ │ │ │ │ + "shell.execute_reply": "2024-11-06T13:30:03.056576Z"
│ │ │ │ │ │ }
│ │ │ │ │ │ },
│ │ │ │ │ │ "outputs": [
│ │ │ │ │ │ {
│ │ │ │ │ │ "data": {
│ │ │ │ │ │ "text/html": [
│ │ │ │ │ │ "