|
22 | 22 | }, |
23 | 23 | { |
24 | 24 | "cell_type": "code", |
25 | | - "execution_count": null, |
| 25 | + "execution_count": 1, |
26 | 26 | "id": "e52fb077", |
27 | 27 | "metadata": {}, |
28 | 28 | "outputs": [ |
29 | 29 | { |
30 | | - "ename": "NameError", |
31 | | - "evalue": "name 'pd' is not defined", |
32 | | - "output_type": "error", |
33 | | - "traceback": [ |
34 | | - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", |
35 | | - "\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)", |
36 | | - "Cell \u001b[1;32mIn[1], line 4\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[38;5;66;03m# ========================================\u001b[39;00m\n\u001b[0;32m 2\u001b[0m \u001b[38;5;66;03m# 1️⃣ Creating Regular Time Series (1D Frequency with Missing Data)\u001b[39;00m\n\u001b[0;32m 3\u001b[0m \u001b[38;5;66;03m# ========================================\u001b[39;00m\n\u001b[1;32m----> 4\u001b[0m idx1 \u001b[38;5;241m=\u001b[39m \u001b[43mpd\u001b[49m\u001b[38;5;241m.\u001b[39mdate_range(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m2023-01-01\u001b[39m\u001b[38;5;124m\"\u001b[39m, periods\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m10\u001b[39m, freq\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m1D\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m 5\u001b[0m idx2 \u001b[38;5;241m=\u001b[39m pd\u001b[38;5;241m.\u001b[39mdate_range(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m2023-01-01\u001b[39m\u001b[38;5;124m\"\u001b[39m, periods\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m12\u001b[39m, freq\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m1D\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m 6\u001b[0m idx3 \u001b[38;5;241m=\u001b[39m pd\u001b[38;5;241m.\u001b[39mdate_range(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m2022-12-31\u001b[39m\u001b[38;5;124m\"\u001b[39m, periods\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m14\u001b[39m, freq\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m1D\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n", |
37 | | - "\u001b[1;31mNameError\u001b[0m: name 'pd' is not defined" |
| 30 | + "name": "stdout", |
| 31 | + "output_type": "stream", |
| 32 | + "text": [ |
| 33 | + "Series 1 (Primary):\n" |
| 34 | + ] |
| 35 | + }, |
| 36 | + { |
| 37 | + "data": { |
| 38 | + "text/plain": [ |
| 39 | + "2023-01-01 1.0\n", |
| 40 | + "2023-01-02 NaN\n", |
| 41 | + "2023-01-03 3.0\n", |
| 42 | + "2023-01-04 NaN\n", |
| 43 | + "2023-01-05 5.0\n", |
| 44 | + "2023-01-06 6.0\n", |
| 45 | + "2023-01-07 NaN\n", |
| 46 | + "2023-01-08 8.0\n", |
| 47 | + "2023-01-09 9.0\n", |
| 48 | + "2023-01-10 10.0\n", |
| 49 | + "Freq: D, Name: A, dtype: float64" |
| 50 | + ] |
| 51 | + }, |
| 52 | + "metadata": {}, |
| 53 | + "output_type": "display_data" |
| 54 | + }, |
| 55 | + { |
| 56 | + "name": "stdout", |
| 57 | + "output_type": "stream", |
| 58 | + "text": [ |
| 59 | + "\n", |
| 60 | + "Series 2 (Secondary - Fills Gaps):\n" |
| 61 | + ] |
| 62 | + }, |
| 63 | + { |
| 64 | + "data": { |
| 65 | + "text/plain": [ |
| 66 | + "2023-01-01 NaN\n", |
| 67 | + "2023-01-02 2.0\n", |
| 68 | + "2023-01-03 NaN\n", |
| 69 | + "2023-01-04 4.0\n", |
| 70 | + "2023-01-05 NaN\n", |
| 71 | + "2023-01-06 NaN\n", |
| 72 | + "2023-01-07 7.0\n", |
| 73 | + "2023-01-08 NaN\n", |
| 74 | + "2023-01-09 NaN\n", |
| 75 | + "2023-01-10 NaN\n", |
| 76 | + "2023-01-11 3.0\n", |
| 77 | + "2023-01-12 4.0\n", |
| 78 | + "Freq: D, Name: A, dtype: float64" |
| 79 | + ] |
| 80 | + }, |
| 81 | + "metadata": {}, |
| 82 | + "output_type": "display_data" |
| 83 | + }, |
| 84 | + { |
| 85 | + "name": "stdout", |
| 86 | + "output_type": "stream", |
| 87 | + "text": [ |
| 88 | + "\n", |
| 89 | + "Series 3 (Tertiary - Fills Gaps):\n" |
38 | 90 | ] |
| 91 | + }, |
| 92 | + { |
| 93 | + "data": { |
| 94 | + "text/plain": [ |
| 95 | + "2022-12-31 1000.0\n", |
| 96 | + "2023-01-01 1001.0\n", |
| 97 | + "2023-01-02 1002.0\n", |
| 98 | + "2023-01-03 NaN\n", |
| 99 | + "2023-01-04 1004.0\n", |
| 100 | + "2023-01-05 NaN\n", |
| 101 | + "2023-01-06 NaN\n", |
| 102 | + "2023-01-07 1007.0\n", |
| 103 | + "2023-01-08 NaN\n", |
| 104 | + "2023-01-09 NaN\n", |
| 105 | + "2023-01-10 NaN\n", |
| 106 | + "2023-01-11 1005.0\n", |
| 107 | + "2023-01-12 1006.0\n", |
| 108 | + "2023-01-13 1007.0\n", |
| 109 | + "Freq: D, Name: A, dtype: float64" |
| 110 | + ] |
| 111 | + }, |
| 112 | + "metadata": {}, |
| 113 | + "output_type": "display_data" |
39 | 114 | } |
40 | 115 | ], |
41 | 116 | "source": [ |
| 117 | + "import pandas as pd\n", |
| 118 | + "import numpy as np\n", |
| 119 | + "from vtools import ts_merge, ts_splice\n", |
42 | 120 | "# ========================================\n", |
43 | | - "# 1️⃣ Creating Regular Time Series (1D Frequency with Missing Data)\n", |
| 121 | + "# Creating Regular Time Series (1D Frequency with Missing Data)\n", |
44 | 122 | "# ========================================\n", |
45 | 123 | "idx1 = pd.date_range(\"2023-01-01\", periods=10, freq=\"1D\")\n", |
46 | 124 | "idx2 = pd.date_range(\"2023-01-01\", periods=12, freq=\"1D\")\n", |
|
73 | 151 | }, |
74 | 152 | { |
75 | 153 | "cell_type": "code", |
76 | | - "execution_count": null, |
| 154 | + "execution_count": 2, |
77 | 155 | "id": "5dd08914", |
78 | 156 | "metadata": {}, |
79 | 157 | "outputs": [ |
|
129 | 207 | }, |
130 | 208 | { |
131 | 209 | "cell_type": "code", |
132 | | - "execution_count": null, |
| 210 | + "execution_count": 3, |
133 | 211 | "id": "ae88f210", |
134 | 212 | "metadata": {}, |
135 | 213 | "outputs": [ |
|
138 | 216 | "output_type": "stream", |
139 | 217 | "text": [ |
140 | 218 | "\n", |
141 | | - "Spliced Series with Prioritization:\n" |
| 219 | + "Spliced Series with Prioritization and default `prefer last`:\n" |
142 | 220 | ] |
143 | 221 | }, |
144 | 222 | { |
|
216 | 294 | }, |
217 | 295 | { |
218 | 296 | "cell_type": "code", |
219 | | - "execution_count": null, |
| 297 | + "execution_count": 4, |
220 | 298 | "id": "9a1d0dae", |
221 | 299 | "metadata": {}, |
222 | 300 | "outputs": [ |
|
354 | 432 | }, |
355 | 433 | { |
356 | 434 | "cell_type": "code", |
357 | | - "execution_count": null, |
| 435 | + "execution_count": 5, |
358 | 436 | "id": "35cfc422", |
359 | 437 | "metadata": {}, |
360 | 438 | "outputs": [ |
|
683 | 761 | "name": "stdout", |
684 | 762 | "output_type": "stream", |
685 | 763 | "text": [ |
| 764 | + "2023-01-01 1.0\n", |
| 765 | + "2023-01-03 NaN\n", |
| 766 | + "2023-01-05 3.0\n", |
| 767 | + "2023-01-07 4.0\n", |
| 768 | + "2023-01-09 5.0\n", |
| 769 | + "Freq: 2D, Name: A, dtype: float64\n", |
| 770 | + "2023-01-02 10.0\n", |
| 771 | + "2023-01-04 20.0\n", |
| 772 | + "2023-01-06 30.0\n", |
| 773 | + "2023-01-08 NaN\n", |
| 774 | + "2023-01-10 50.0\n", |
| 775 | + "Freq: 2D, Name: B, dtype: float64\n", |
686 | 776 | "Merged Series not renamed:\n" |
687 | 777 | ] |
688 | 778 | }, |
689 | 779 | { |
690 | 780 | "data": { |
691 | 781 | "text/plain": [ |
692 | 782 | "2023-01-01 1.0\n", |
693 | | - "2023-01-02 2.0\n", |
694 | | - "2023-01-03 3.0\n", |
695 | | - "2023-01-04 4.0\n", |
696 | | - "2023-01-05 5.0\n", |
697 | | - "2023-01-06 6.0\n", |
698 | | - "2023-01-07 7.0\n", |
699 | | - "2023-01-08 8.0\n", |
700 | | - "2023-01-09 9.0\n", |
701 | | - "2023-01-10 10.0\n", |
702 | | - "2023-01-11 3.0\n", |
703 | | - "2023-01-12 4.0\n", |
704 | | - "Freq: D, Name: A, dtype: float64" |
705 | | - ] |
706 | | - }, |
707 | | - "metadata": {}, |
708 | | - "output_type": "display_data" |
709 | | - }, |
710 | | - { |
711 | | - "name": "stdout", |
712 | | - "output_type": "stream", |
713 | | - "text": [ |
714 | | - "Merged Series renamed:\n" |
715 | | - ] |
716 | | - }, |
717 | | - { |
718 | | - "data": { |
719 | | - "text/plain": [ |
720 | | - "2023-01-01 1.0\n", |
721 | | - "2023-01-02 2.0\n", |
722 | | - "2023-01-03 3.0\n", |
723 | | - "2023-01-04 4.0\n", |
724 | | - "2023-01-05 5.0\n", |
725 | | - "2023-01-06 6.0\n", |
726 | | - "2023-01-07 7.0\n", |
727 | | - "2023-01-08 8.0\n", |
728 | | - "2023-01-09 9.0\n", |
729 | | - "2023-01-10 10.0\n", |
730 | | - "2023-01-11 3.0\n", |
731 | | - "2023-01-12 4.0\n", |
732 | | - "Freq: D, Name: Renamed_A, dtype: float64" |
| 783 | + "2023-01-02 10.0\n", |
| 784 | + "2023-01-03 NaN\n", |
| 785 | + "2023-01-04 20.0\n", |
| 786 | + "2023-01-05 3.0\n", |
| 787 | + "2023-01-06 30.0\n", |
| 788 | + "2023-01-07 4.0\n", |
| 789 | + "2023-01-08 NaN\n", |
| 790 | + "2023-01-09 5.0\n", |
| 791 | + "2023-01-10 50.0\n", |
| 792 | + "Name: C, dtype: float64" |
733 | 793 | ] |
734 | 794 | }, |
735 | 795 | "metadata": {}, |
|
943 | 1003 | { |
944 | 1004 | "data": { |
945 | 1005 | "text/plain": [ |
946 | | - "2023-01-01 1.0\n", |
947 | | - "2023-01-02 2.0\n", |
948 | | - "2023-01-03 NaN\n", |
949 | | - "2023-01-04 4.0\n", |
950 | | - "2023-01-05 NaN\n", |
951 | | - "2023-01-06 NaN\n", |
952 | | - "2023-01-07 7.0\n", |
953 | | - "2023-01-08 NaN\n", |
954 | | - "2023-01-09 NaN\n", |
955 | | - "2023-01-10 NaN\n", |
956 | | - "2023-01-11 3.0\n", |
957 | | - "2023-01-12 4.0\n", |
958 | | - "Freq: D, Name: Renamed_A, dtype: float64" |
| 1006 | + "2023-01-01 1.0\n", |
| 1007 | + "2023-01-02 10.0\n", |
| 1008 | + "2023-01-04 20.0\n", |
| 1009 | + "2023-01-06 30.0\n", |
| 1010 | + "2023-01-08 NaN\n", |
| 1011 | + "2023-01-10 50.0\n", |
| 1012 | + "Name: Renamed_A, dtype: float64" |
959 | 1013 | ] |
960 | 1014 | }, |
961 | 1015 | "metadata": {}, |
|
964 | 1018 | ], |
965 | 1019 | "source": [ |
966 | 1020 | "# Example: Using `names` to rename output columns\n", |
| 1021 | + "print(\"Original univariate series\")\n", |
| 1022 | + "print(series1)\n", |
| 1023 | + "print(series2)\n", |
967 | 1024 | "\n", |
968 | | - "# Merging without a rename\n", |
969 | | - "merged_series_named = ts_merge((series1, series2))\n", |
970 | | - "print(\"Merged Series not renamed:\")\n", |
| 1025 | + "# Merging univariate with different names and using names to rename\n", |
| 1026 | + "merged_series_named = ts_merge((series1, series2), names=[\"C\"])\n", |
| 1027 | + "print(\"Merged univariate series renamed:\")\n", |
971 | 1028 | "display(merged_series_named)\n", |
972 | 1029 | "\n", |
973 | | - "# Rename a single column\n", |
974 | | - "merged_series_named = ts_merge((series1, series2), names=\"Renamed_A\")\n", |
975 | | - "print(\"Merged Series renamed:\")\n", |
976 | | - "display(merged_series_named)\n", |
977 | 1030 | "\n", |
978 | 1031 | "# Select specific columns in DataFrame\n", |
979 | 1032 | "try:\n", |
|
1015 | 1068 | }, |
1016 | 1069 | { |
1017 | 1070 | "cell_type": "markdown", |
| 1071 | + "id": "d615df22", |
1018 | 1072 | "metadata": {}, |
1019 | 1073 | "source": [ |
1020 | 1074 | "# `ts_merge`: strict priority option\n", |
|
1068 | 1122 | }, |
1069 | 1123 | { |
1070 | 1124 | "cell_type": "code", |
1071 | | - "execution_count": null, |
| 1125 | + "execution_count": 7, |
| 1126 | + "id": "d31654ba", |
1072 | 1127 | "metadata": {}, |
1073 | | - "outputs": [], |
| 1128 | + "outputs": [ |
| 1129 | + { |
| 1130 | + "name": "stdout", |
| 1131 | + "output_type": "stream", |
| 1132 | + "text": [ |
| 1133 | + "Example 1 strict=False:\n", |
| 1134 | + "2023-01-01 1.0\n", |
| 1135 | + "2023-01-02 2.0\n", |
| 1136 | + "2023-01-03 10.0\n", |
| 1137 | + "2023-01-04 4.0\n", |
| 1138 | + "2023-01-05 5.0\n", |
| 1139 | + "2023-01-06 NaN\n", |
| 1140 | + "2023-01-07 50.0\n", |
| 1141 | + "Freq: D, Name: A, dtype: float64\n", |
| 1142 | + "Example 1 strict=True:\n", |
| 1143 | + "2023-01-01 1.0\n", |
| 1144 | + "2023-01-02 2.0\n", |
| 1145 | + "2023-01-03 NaN\n", |
| 1146 | + "2023-01-04 4.0\n", |
| 1147 | + "2023-01-05 5.0\n", |
| 1148 | + "2023-01-06 NaN\n", |
| 1149 | + "2023-01-07 50.0\n", |
| 1150 | + "Freq: D, Name: A, dtype: float64\n", |
| 1151 | + "\n", |
| 1152 | + "Example 2 strict=True:\n", |
| 1153 | + " A B\n", |
| 1154 | + "2023-01-01 1.0 1.0\n", |
| 1155 | + "2023-01-02 NaN NaN\n", |
| 1156 | + "2023-01-03 3.0 NaN\n", |
| 1157 | + "2023-01-04 4.0 4.0\n", |
| 1158 | + "2023-01-05 5.0 5.0\n", |
| 1159 | + "2023-01-06 40.0 40.0\n", |
| 1160 | + "2023-01-07 50.0 50.0\n", |
| 1161 | + "\n", |
| 1162 | + "Example 3 strict=True:\n", |
| 1163 | + "2023-01-01 1.0\n", |
| 1164 | + "2023-01-03 2.0\n", |
| 1165 | + "2023-01-07 3.0\n", |
| 1166 | + "2023-01-10 4.0\n", |
| 1167 | + "2023-01-11 40.0\n", |
| 1168 | + "Name: A, dtype: float64\n" |
| 1169 | + ] |
| 1170 | + } |
| 1171 | + ], |
1074 | 1172 | "source": [ |
1075 | 1173 | "import numpy as np, pandas as pd\n", |
1076 | 1174 | "from vtools.functions.merge import ts_merge\n", |
|
0 commit comments