{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Лабораторная работа №1"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Датасет 12. Цены на акции Starbucks."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"1) Загрузка и сохранение данных"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd"
]
},
{
"cell_type": "code",
"execution_count": 62,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Date | \n",
" Open | \n",
" High | \n",
" Low | \n",
" Close | \n",
" Adj Close | \n",
" Volume | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 1992-06-26 | \n",
" 0.328125 | \n",
" 0.347656 | \n",
" 0.320313 | \n",
" 0.335938 | \n",
" 0.260703 | \n",
" 224358400 | \n",
"
\n",
" \n",
" 1 | \n",
" 1992-06-29 | \n",
" 0.339844 | \n",
" 0.367188 | \n",
" 0.332031 | \n",
" 0.359375 | \n",
" 0.278891 | \n",
" 58732800 | \n",
"
\n",
" \n",
" 2 | \n",
" 1992-06-30 | \n",
" 0.367188 | \n",
" 0.371094 | \n",
" 0.343750 | \n",
" 0.347656 | \n",
" 0.269797 | \n",
" 34777600 | \n",
"
\n",
" \n",
" 3 | \n",
" 1992-07-01 | \n",
" 0.351563 | \n",
" 0.359375 | \n",
" 0.339844 | \n",
" 0.355469 | \n",
" 0.275860 | \n",
" 18316800 | \n",
"
\n",
" \n",
" 4 | \n",
" 1992-07-02 | \n",
" 0.359375 | \n",
" 0.359375 | \n",
" 0.347656 | \n",
" 0.355469 | \n",
" 0.275860 | \n",
" 13996800 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Date Open High Low Close Adj Close Volume\n",
"0 1992-06-26 0.328125 0.347656 0.320313 0.335938 0.260703 224358400\n",
"1 1992-06-29 0.339844 0.367188 0.332031 0.359375 0.278891 58732800\n",
"2 1992-06-30 0.367188 0.371094 0.343750 0.347656 0.269797 34777600\n",
"3 1992-07-01 0.351563 0.359375 0.339844 0.355469 0.275860 18316800\n",
"4 1992-07-02 0.359375 0.359375 0.347656 0.355469 0.275860 13996800"
]
},
"execution_count": 62,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df = pd.read_csv(\"coffee.csv\")\n",
"\n",
"df.head()"
]
},
{
"cell_type": "code",
"execution_count": 63,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Date | \n",
" Open | \n",
" High | \n",
" Low | \n",
" Close | \n",
" Adj Close | \n",
" Volume | \n",
"
\n",
" \n",
" \n",
" \n",
" 8034 | \n",
" 2024-05-22 | \n",
" 77.699997 | \n",
" 81.019997 | \n",
" 77.440002 | \n",
" 80.720001 | \n",
" 80.720001 | \n",
" 22063400 | \n",
"
\n",
" \n",
" 8035 | \n",
" 2024-05-23 | \n",
" 80.099998 | \n",
" 80.699997 | \n",
" 79.169998 | \n",
" 79.260002 | \n",
" 79.260002 | \n",
" 4651418 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Date Open High Low Close Adj Close \\\n",
"8034 2024-05-22 77.699997 81.019997 77.440002 80.720001 80.720001 \n",
"8035 2024-05-23 80.099998 80.699997 79.169998 79.260002 79.260002 \n",
"\n",
" Volume \n",
"8034 22063400 \n",
"8035 4651418 "
]
},
"execution_count": 63,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.tail(2)"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [],
"source": [
"df.to_csv(\"newCoffee.csv\", index=False)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"2) Получение сведений о датафрейме с данными"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Open | \n",
" High | \n",
" Low | \n",
" Close | \n",
" Adj Close | \n",
" Volume | \n",
"
\n",
" \n",
" \n",
" \n",
" count | \n",
" 8036.000000 | \n",
" 8036.000000 | \n",
" 8036.000000 | \n",
" 8036.000000 | \n",
" 8036.000000 | \n",
" 8.036000e+03 | \n",
"
\n",
" \n",
" mean | \n",
" 30.054280 | \n",
" 30.351487 | \n",
" 29.751322 | \n",
" 30.058857 | \n",
" 26.674025 | \n",
" 1.470459e+07 | \n",
"
\n",
" \n",
" std | \n",
" 33.615577 | \n",
" 33.906613 | \n",
" 33.314569 | \n",
" 33.615911 | \n",
" 31.728090 | \n",
" 1.340021e+07 | \n",
"
\n",
" \n",
" min | \n",
" 0.328125 | \n",
" 0.347656 | \n",
" 0.320313 | \n",
" 0.335938 | \n",
" 0.260703 | \n",
" 1.504000e+06 | \n",
"
\n",
" \n",
" 25% | \n",
" 4.392031 | \n",
" 4.531250 | \n",
" 4.304922 | \n",
" 4.399610 | \n",
" 3.414300 | \n",
" 7.817750e+06 | \n",
"
\n",
" \n",
" 50% | \n",
" 13.325000 | \n",
" 13.493750 | \n",
" 13.150000 | \n",
" 13.330000 | \n",
" 10.352452 | \n",
" 1.169815e+07 | \n",
"
\n",
" \n",
" 75% | \n",
" 55.250000 | \n",
" 55.722501 | \n",
" 54.852499 | \n",
" 55.267499 | \n",
" 47.464829 | \n",
" 1.778795e+07 | \n",
"
\n",
" \n",
" max | \n",
" 126.080002 | \n",
" 126.320000 | \n",
" 124.809998 | \n",
" 126.059998 | \n",
" 118.010414 | \n",
" 5.855088e+08 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Open High Low Close Adj Close \\\n",
"count 8036.000000 8036.000000 8036.000000 8036.000000 8036.000000 \n",
"mean 30.054280 30.351487 29.751322 30.058857 26.674025 \n",
"std 33.615577 33.906613 33.314569 33.615911 31.728090 \n",
"min 0.328125 0.347656 0.320313 0.335938 0.260703 \n",
"25% 4.392031 4.531250 4.304922 4.399610 3.414300 \n",
"50% 13.325000 13.493750 13.150000 13.330000 10.352452 \n",
"75% 55.250000 55.722501 54.852499 55.267499 47.464829 \n",
"max 126.080002 126.320000 124.809998 126.059998 118.010414 \n",
"\n",
" Volume \n",
"count 8.036000e+03 \n",
"mean 1.470459e+07 \n",
"std 1.340021e+07 \n",
"min 1.504000e+06 \n",
"25% 7.817750e+06 \n",
"50% 1.169815e+07 \n",
"75% 1.778795e+07 \n",
"max 5.855088e+08 "
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.describe()"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"RangeIndex: 8036 entries, 0 to 8035\n",
"Data columns (total 7 columns):\n",
" # Column Non-Null Count Dtype \n",
"--- ------ -------------- ----- \n",
" 0 Date 8036 non-null object \n",
" 1 Open 8036 non-null float64\n",
" 2 High 8036 non-null float64\n",
" 3 Low 8036 non-null float64\n",
" 4 Close 8036 non-null float64\n",
" 5 Adj Close 8036 non-null float64\n",
" 6 Volume 8036 non-null int64 \n",
"dtypes: float64(5), int64(1), object(1)\n",
"memory usage: 439.6+ KB\n"
]
}
],
"source": [
"df.info()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"3. Получение сведений о колонках датафрейма"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Index(['Date', 'Open', 'High', 'Low', 'Close', 'Adj Close', 'Volume'], dtype='object')"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.columns"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"4. Вывод отдельных строк и столбцов из датафрейма"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Open | \n",
" Close | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 0.328125 | \n",
" 0.335938 | \n",
"
\n",
" \n",
" 1 | \n",
" 0.339844 | \n",
" 0.359375 | \n",
"
\n",
" \n",
" 2 | \n",
" 0.367188 | \n",
" 0.347656 | \n",
"
\n",
" \n",
" 3 | \n",
" 0.351563 | \n",
" 0.355469 | \n",
"
\n",
" \n",
" 4 | \n",
" 0.359375 | \n",
" 0.355469 | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" 8031 | \n",
" 75.269997 | \n",
" 77.849998 | \n",
"
\n",
" \n",
" 8032 | \n",
" 77.680000 | \n",
" 77.540001 | \n",
"
\n",
" \n",
" 8033 | \n",
" 77.559998 | \n",
" 77.720001 | \n",
"
\n",
" \n",
" 8034 | \n",
" 77.699997 | \n",
" 80.720001 | \n",
"
\n",
" \n",
" 8035 | \n",
" 80.099998 | \n",
" 79.260002 | \n",
"
\n",
" \n",
"
\n",
"
8036 rows × 2 columns
\n",
"
"
],
"text/plain": [
" Open Close\n",
"0 0.328125 0.335938\n",
"1 0.339844 0.359375\n",
"2 0.367188 0.347656\n",
"3 0.351563 0.355469\n",
"4 0.359375 0.355469\n",
"... ... ...\n",
"8031 75.269997 77.849998\n",
"8032 77.680000 77.540001\n",
"8033 77.559998 77.720001\n",
"8034 77.699997 80.720001\n",
"8035 80.099998 79.260002\n",
"\n",
"[8036 rows x 2 columns]"
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df[[\"Open\", \"Close\"]]"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Date | \n",
" Open | \n",
" High | \n",
" Low | \n",
" Close | \n",
" Adj Close | \n",
" Volume | \n",
"
\n",
" \n",
" \n",
" \n",
" 5 | \n",
" 1992-07-06 | \n",
" 0.351563 | \n",
" 0.355469 | \n",
" 0.347656 | \n",
" 0.355469 | \n",
" 0.275860 | \n",
" 5753600 | \n",
"
\n",
" \n",
" 6 | \n",
" 1992-07-07 | \n",
" 0.355469 | \n",
" 0.355469 | \n",
" 0.347656 | \n",
" 0.355469 | \n",
" 0.275860 | \n",
" 10662400 | \n",
"
\n",
" \n",
" 7 | \n",
" 1992-07-08 | \n",
" 0.355469 | \n",
" 0.355469 | \n",
" 0.343750 | \n",
" 0.347656 | \n",
" 0.269797 | \n",
" 15500800 | \n",
"
\n",
" \n",
" 8 | \n",
" 1992-07-09 | \n",
" 0.351563 | \n",
" 0.359375 | \n",
" 0.347656 | \n",
" 0.359375 | \n",
" 0.278891 | \n",
" 3923200 | \n",
"
\n",
" \n",
" 9 | \n",
" 1992-07-10 | \n",
" 0.359375 | \n",
" 0.367188 | \n",
" 0.351563 | \n",
" 0.363281 | \n",
" 0.281923 | \n",
" 11040000 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Date Open High Low Close Adj Close Volume\n",
"5 1992-07-06 0.351563 0.355469 0.347656 0.355469 0.275860 5753600\n",
"6 1992-07-07 0.355469 0.355469 0.347656 0.355469 0.275860 10662400\n",
"7 1992-07-08 0.355469 0.355469 0.343750 0.347656 0.269797 15500800\n",
"8 1992-07-09 0.351563 0.359375 0.347656 0.359375 0.278891 3923200\n",
"9 1992-07-10 0.359375 0.367188 0.351563 0.363281 0.281923 11040000"
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.iloc[5:10]"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Date | \n",
" Open | \n",
" High | \n",
" Low | \n",
" Close | \n",
" Adj Close | \n",
" Volume | \n",
"
\n",
" \n",
" \n",
" \n",
" 7322 | \n",
" 2021-07-23 | \n",
" 124.550003 | \n",
" 126.320000 | \n",
" 123.919998 | \n",
" 125.970001 | \n",
" 117.926170 | \n",
" 7934200 | \n",
"
\n",
" \n",
" 7323 | \n",
" 2021-07-26 | \n",
" 125.739998 | \n",
" 126.099998 | \n",
" 124.250000 | \n",
" 126.059998 | \n",
" 118.010414 | \n",
" 4827500 | \n",
"
\n",
" \n",
" 7324 | \n",
" 2021-07-27 | \n",
" 126.080002 | \n",
" 126.160004 | \n",
" 124.809998 | \n",
" 126.029999 | \n",
" 117.982330 | \n",
" 6110900 | \n",
"
\n",
" \n",
" 7325 | \n",
" 2021-07-28 | \n",
" 122.559998 | \n",
" 123.330002 | \n",
" 121.389999 | \n",
" 122.410004 | \n",
" 114.593483 | \n",
" 11747000 | \n",
"
\n",
" \n",
" 7326 | \n",
" 2021-07-29 | \n",
" 122.930000 | \n",
" 123.470001 | \n",
" 122.139999 | \n",
" 122.379997 | \n",
" 114.565414 | \n",
" 6618400 | \n",
"
\n",
" \n",
" 7327 | \n",
" 2021-07-30 | \n",
" 122.190002 | \n",
" 122.980003 | \n",
" 121.099998 | \n",
" 121.430000 | \n",
" 113.676071 | \n",
" 5712300 | \n",
"
\n",
" \n",
" 7328 | \n",
" 2021-08-02 | \n",
" 122.029999 | \n",
" 122.980003 | \n",
" 120.070000 | \n",
" 120.370003 | \n",
" 112.683769 | \n",
" 5996800 | \n",
"
\n",
" \n",
" 7329 | \n",
" 2021-08-03 | \n",
" 120.570000 | \n",
" 120.750000 | \n",
" 117.519997 | \n",
" 119.129997 | \n",
" 111.522942 | \n",
" 6030500 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Date Open High Low Close Adj Close \\\n",
"7322 2021-07-23 124.550003 126.320000 123.919998 125.970001 117.926170 \n",
"7323 2021-07-26 125.739998 126.099998 124.250000 126.059998 118.010414 \n",
"7324 2021-07-27 126.080002 126.160004 124.809998 126.029999 117.982330 \n",
"7325 2021-07-28 122.559998 123.330002 121.389999 122.410004 114.593483 \n",
"7326 2021-07-29 122.930000 123.470001 122.139999 122.379997 114.565414 \n",
"7327 2021-07-30 122.190002 122.980003 121.099998 121.430000 113.676071 \n",
"7328 2021-08-02 122.029999 122.980003 120.070000 120.370003 112.683769 \n",
"7329 2021-08-03 120.570000 120.750000 117.519997 119.129997 111.522942 \n",
"\n",
" Volume \n",
"7322 7934200 \n",
"7323 4827500 \n",
"7324 6110900 \n",
"7325 11747000 \n",
"7326 6618400 \n",
"7327 5712300 \n",
"7328 5996800 \n",
"7329 6030500 "
]
},
"execution_count": 30,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df[df['Open'] > 120]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"5. Группировка и агрегация данных в датафрейме"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Low | \n",
"
\n",
" \n",
" High | \n",
" | \n",
"
\n",
" \n",
" \n",
" \n",
" 0.347656 | \n",
" 0.320313 | \n",
"
\n",
" \n",
" 0.355469 | \n",
" 0.346354 | \n",
"
\n",
" \n",
" 0.359375 | \n",
" 0.345052 | \n",
"
\n",
" \n",
" 0.367188 | \n",
" 0.341797 | \n",
"
\n",
" \n",
" 0.371094 | \n",
" 0.351562 | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" 123.330002 | \n",
" 121.389999 | \n",
"
\n",
" \n",
" 123.470001 | \n",
" 122.139999 | \n",
"
\n",
" \n",
" 126.099998 | \n",
" 124.250000 | \n",
"
\n",
" \n",
" 126.160004 | \n",
" 124.809998 | \n",
"
\n",
" \n",
" 126.320000 | \n",
" 123.919998 | \n",
"
\n",
" \n",
"
\n",
"
5245 rows × 1 columns
\n",
"
"
],
"text/plain": [
" Low\n",
"High \n",
"0.347656 0.320313\n",
"0.355469 0.346354\n",
"0.359375 0.345052\n",
"0.367188 0.341797\n",
"0.371094 0.351562\n",
"... ...\n",
"123.330002 121.389999\n",
"123.470001 122.139999\n",
"126.099998 124.250000\n",
"126.160004 124.809998\n",
"126.320000 123.919998\n",
"\n",
"[5245 rows x 1 columns]"
]
},
"execution_count": 31,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"group = df.groupby(['High'])['Low'].mean()\n",
"group.to_frame()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"6. Сортировка данных в датафрейме"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Date | \n",
" Open | \n",
" High | \n",
" Low | \n",
" Close | \n",
" Adj Close | \n",
" Volume | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 1992-06-26 | \n",
" 0.328125 | \n",
" 0.347656 | \n",
" 0.320313 | \n",
" 0.335938 | \n",
" 0.260703 | \n",
" 224358400 | \n",
"
\n",
" \n",
" 1 | \n",
" 1992-06-29 | \n",
" 0.339844 | \n",
" 0.367188 | \n",
" 0.332031 | \n",
" 0.359375 | \n",
" 0.278891 | \n",
" 58732800 | \n",
"
\n",
" \n",
" 2 | \n",
" 1992-06-30 | \n",
" 0.367188 | \n",
" 0.371094 | \n",
" 0.343750 | \n",
" 0.347656 | \n",
" 0.269797 | \n",
" 34777600 | \n",
"
\n",
" \n",
" 3 | \n",
" 1992-07-01 | \n",
" 0.351563 | \n",
" 0.359375 | \n",
" 0.339844 | \n",
" 0.355469 | \n",
" 0.275860 | \n",
" 18316800 | \n",
"
\n",
" \n",
" 4 | \n",
" 1992-07-02 | \n",
" 0.359375 | \n",
" 0.359375 | \n",
" 0.347656 | \n",
" 0.355469 | \n",
" 0.275860 | \n",
" 13996800 | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" 8031 | \n",
" 2024-05-17 | \n",
" 75.269997 | \n",
" 78.000000 | \n",
" 74.919998 | \n",
" 77.849998 | \n",
" 77.849998 | \n",
" 14436500 | \n",
"
\n",
" \n",
" 8032 | \n",
" 2024-05-20 | \n",
" 77.680000 | \n",
" 78.320000 | \n",
" 76.709999 | \n",
" 77.540001 | \n",
" 77.540001 | \n",
" 11183800 | \n",
"
\n",
" \n",
" 8033 | \n",
" 2024-05-21 | \n",
" 77.559998 | \n",
" 78.220001 | \n",
" 77.500000 | \n",
" 77.720001 | \n",
" 77.720001 | \n",
" 8916600 | \n",
"
\n",
" \n",
" 8034 | \n",
" 2024-05-22 | \n",
" 77.699997 | \n",
" 81.019997 | \n",
" 77.440002 | \n",
" 80.720001 | \n",
" 80.720001 | \n",
" 22063400 | \n",
"
\n",
" \n",
" 8035 | \n",
" 2024-05-23 | \n",
" 80.099998 | \n",
" 80.699997 | \n",
" 79.169998 | \n",
" 79.260002 | \n",
" 79.260002 | \n",
" 4651418 | \n",
"
\n",
" \n",
"
\n",
"
8036 rows × 7 columns
\n",
"
"
],
"text/plain": [
" Date Open High Low Close Adj Close \\\n",
"0 1992-06-26 0.328125 0.347656 0.320313 0.335938 0.260703 \n",
"1 1992-06-29 0.339844 0.367188 0.332031 0.359375 0.278891 \n",
"2 1992-06-30 0.367188 0.371094 0.343750 0.347656 0.269797 \n",
"3 1992-07-01 0.351563 0.359375 0.339844 0.355469 0.275860 \n",
"4 1992-07-02 0.359375 0.359375 0.347656 0.355469 0.275860 \n",
"... ... ... ... ... ... ... \n",
"8031 2024-05-17 75.269997 78.000000 74.919998 77.849998 77.849998 \n",
"8032 2024-05-20 77.680000 78.320000 76.709999 77.540001 77.540001 \n",
"8033 2024-05-21 77.559998 78.220001 77.500000 77.720001 77.720001 \n",
"8034 2024-05-22 77.699997 81.019997 77.440002 80.720001 80.720001 \n",
"8035 2024-05-23 80.099998 80.699997 79.169998 79.260002 79.260002 \n",
"\n",
" Volume \n",
"0 224358400 \n",
"1 58732800 \n",
"2 34777600 \n",
"3 18316800 \n",
"4 13996800 \n",
"... ... \n",
"8031 14436500 \n",
"8032 11183800 \n",
"8033 8916600 \n",
"8034 22063400 \n",
"8035 4651418 \n",
"\n",
"[8036 rows x 7 columns]"
]
},
"execution_count": 32,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sorted_df = df.sort_values(by='Date', ascending = True)\n",
"sorted_df"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"7. Удаление строк/столбцов"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {},
"outputs": [],
"source": [
"df_dropped_columns = df.drop(columns=['Adj Close', 'Volume']) # Удаление столбцов 'Adj Close' и 'Volume'"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Date | \n",
" Open | \n",
" High | \n",
" Low | \n",
" Close | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 1992-06-26 | \n",
" 0.328125 | \n",
" 0.347656 | \n",
" 0.320313 | \n",
" 0.335938 | \n",
"
\n",
" \n",
" 1 | \n",
" 1992-06-29 | \n",
" 0.339844 | \n",
" 0.367188 | \n",
" 0.332031 | \n",
" 0.359375 | \n",
"
\n",
" \n",
" 2 | \n",
" 1992-06-30 | \n",
" 0.367188 | \n",
" 0.371094 | \n",
" 0.343750 | \n",
" 0.347656 | \n",
"
\n",
" \n",
" 3 | \n",
" 1992-07-01 | \n",
" 0.351563 | \n",
" 0.359375 | \n",
" 0.339844 | \n",
" 0.355469 | \n",
"
\n",
" \n",
" 4 | \n",
" 1992-07-02 | \n",
" 0.359375 | \n",
" 0.359375 | \n",
" 0.347656 | \n",
" 0.355469 | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" 8031 | \n",
" 2024-05-17 | \n",
" 75.269997 | \n",
" 78.000000 | \n",
" 74.919998 | \n",
" 77.849998 | \n",
"
\n",
" \n",
" 8032 | \n",
" 2024-05-20 | \n",
" 77.680000 | \n",
" 78.320000 | \n",
" 76.709999 | \n",
" 77.540001 | \n",
"
\n",
" \n",
" 8033 | \n",
" 2024-05-21 | \n",
" 77.559998 | \n",
" 78.220001 | \n",
" 77.500000 | \n",
" 77.720001 | \n",
"
\n",
" \n",
" 8034 | \n",
" 2024-05-22 | \n",
" 77.699997 | \n",
" 81.019997 | \n",
" 77.440002 | \n",
" 80.720001 | \n",
"
\n",
" \n",
" 8035 | \n",
" 2024-05-23 | \n",
" 80.099998 | \n",
" 80.699997 | \n",
" 79.169998 | \n",
" 79.260002 | \n",
"
\n",
" \n",
"
\n",
"
8036 rows × 5 columns
\n",
"
"
],
"text/plain": [
" Date Open High Low Close\n",
"0 1992-06-26 0.328125 0.347656 0.320313 0.335938\n",
"1 1992-06-29 0.339844 0.367188 0.332031 0.359375\n",
"2 1992-06-30 0.367188 0.371094 0.343750 0.347656\n",
"3 1992-07-01 0.351563 0.359375 0.339844 0.355469\n",
"4 1992-07-02 0.359375 0.359375 0.347656 0.355469\n",
"... ... ... ... ... ...\n",
"8031 2024-05-17 75.269997 78.000000 74.919998 77.849998\n",
"8032 2024-05-20 77.680000 78.320000 76.709999 77.540001\n",
"8033 2024-05-21 77.559998 78.220001 77.500000 77.720001\n",
"8034 2024-05-22 77.699997 81.019997 77.440002 80.720001\n",
"8035 2024-05-23 80.099998 80.699997 79.169998 79.260002\n",
"\n",
"[8036 rows x 5 columns]"
]
},
"execution_count": 34,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_dropped_columns"
]
},
{
"cell_type": "code",
"execution_count": 65,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Date | \n",
" Open | \n",
" High | \n",
" Low | \n",
" Close | \n",
" Adj Close | \n",
" Volume | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 1992-06-26 | \n",
" 0.328125 | \n",
" 0.347656 | \n",
" 0.320313 | \n",
" 0.335938 | \n",
" 0.260703 | \n",
" 224358400 | \n",
"
\n",
" \n",
" 1 | \n",
" 1992-06-29 | \n",
" 0.339844 | \n",
" 0.367188 | \n",
" 0.332031 | \n",
" 0.359375 | \n",
" 0.278891 | \n",
" 58732800 | \n",
"
\n",
" \n",
" 2 | \n",
" 1992-06-30 | \n",
" 0.367188 | \n",
" 0.371094 | \n",
" 0.343750 | \n",
" 0.347656 | \n",
" 0.269797 | \n",
" 34777600 | \n",
"
\n",
" \n",
" 5 | \n",
" 1992-07-06 | \n",
" 0.351563 | \n",
" 0.355469 | \n",
" 0.347656 | \n",
" 0.355469 | \n",
" 0.275860 | \n",
" 5753600 | \n",
"
\n",
" \n",
" 6 | \n",
" 1992-07-07 | \n",
" 0.355469 | \n",
" 0.355469 | \n",
" 0.347656 | \n",
" 0.355469 | \n",
" 0.275860 | \n",
" 10662400 | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" 8031 | \n",
" 2024-05-17 | \n",
" 75.269997 | \n",
" 78.000000 | \n",
" 74.919998 | \n",
" 77.849998 | \n",
" 77.849998 | \n",
" 14436500 | \n",
"
\n",
" \n",
" 8032 | \n",
" 2024-05-20 | \n",
" 77.680000 | \n",
" 78.320000 | \n",
" 76.709999 | \n",
" 77.540001 | \n",
" 77.540001 | \n",
" 11183800 | \n",
"
\n",
" \n",
" 8033 | \n",
" 2024-05-21 | \n",
" 77.559998 | \n",
" 78.220001 | \n",
" 77.500000 | \n",
" 77.720001 | \n",
" 77.720001 | \n",
" 8916600 | \n",
"
\n",
" \n",
" 8034 | \n",
" 2024-05-22 | \n",
" 77.699997 | \n",
" 81.019997 | \n",
" 77.440002 | \n",
" 80.720001 | \n",
" 80.720001 | \n",
" 22063400 | \n",
"
\n",
" \n",
" 8035 | \n",
" 2024-05-23 | \n",
" 80.099998 | \n",
" 80.699997 | \n",
" 79.169998 | \n",
" 79.260002 | \n",
" 79.260002 | \n",
" 4651418 | \n",
"
\n",
" \n",
"
\n",
"
8034 rows × 7 columns
\n",
"
"
],
"text/plain": [
" Date Open High Low Close Adj Close \\\n",
"0 1992-06-26 0.328125 0.347656 0.320313 0.335938 0.260703 \n",
"1 1992-06-29 0.339844 0.367188 0.332031 0.359375 0.278891 \n",
"2 1992-06-30 0.367188 0.371094 0.343750 0.347656 0.269797 \n",
"5 1992-07-06 0.351563 0.355469 0.347656 0.355469 0.275860 \n",
"6 1992-07-07 0.355469 0.355469 0.347656 0.355469 0.275860 \n",
"... ... ... ... ... ... ... \n",
"8031 2024-05-17 75.269997 78.000000 74.919998 77.849998 77.849998 \n",
"8032 2024-05-20 77.680000 78.320000 76.709999 77.540001 77.540001 \n",
"8033 2024-05-21 77.559998 78.220001 77.500000 77.720001 77.720001 \n",
"8034 2024-05-22 77.699997 81.019997 77.440002 80.720001 80.720001 \n",
"8035 2024-05-23 80.099998 80.699997 79.169998 79.260002 79.260002 \n",
"\n",
" Volume \n",
"0 224358400 \n",
"1 58732800 \n",
"2 34777600 \n",
"5 5753600 \n",
"6 10662400 \n",
"... ... \n",
"8031 14436500 \n",
"8032 11183800 \n",
"8033 8916600 \n",
"8034 22063400 \n",
"8035 4651418 \n",
"\n",
"[8034 rows x 7 columns]"
]
},
"execution_count": 65,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_dropped_rows = df.drop([3, 4]) # Удаление строк с индексами 3 и 4\n",
"df_dropped_rows"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"8. Создание новых столбцов на основе данных из существующих столбцов датафрейма"
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {},
"outputs": [],
"source": [
"df['Difference'] = df['High'] - df['Low']"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Date | \n",
" Open | \n",
" High | \n",
" Low | \n",
" Close | \n",
" Adj Close | \n",
" Volume | \n",
" Difference | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 1992-06-26 | \n",
" 0.328125 | \n",
" 0.347656 | \n",
" 0.320313 | \n",
" 0.335938 | \n",
" 0.260703 | \n",
" 224358400 | \n",
" 0.027343 | \n",
"
\n",
" \n",
" 1 | \n",
" 1992-06-29 | \n",
" 0.339844 | \n",
" 0.367188 | \n",
" 0.332031 | \n",
" 0.359375 | \n",
" 0.278891 | \n",
" 58732800 | \n",
" 0.035157 | \n",
"
\n",
" \n",
" 2 | \n",
" 1992-06-30 | \n",
" 0.367188 | \n",
" 0.371094 | \n",
" 0.343750 | \n",
" 0.347656 | \n",
" 0.269797 | \n",
" 34777600 | \n",
" 0.027344 | \n",
"
\n",
" \n",
" 3 | \n",
" 1992-07-01 | \n",
" 0.351563 | \n",
" 0.359375 | \n",
" 0.339844 | \n",
" 0.355469 | \n",
" 0.275860 | \n",
" 18316800 | \n",
" 0.019531 | \n",
"
\n",
" \n",
" 4 | \n",
" 1992-07-02 | \n",
" 0.359375 | \n",
" 0.359375 | \n",
" 0.347656 | \n",
" 0.355469 | \n",
" 0.275860 | \n",
" 13996800 | \n",
" 0.011719 | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" 8031 | \n",
" 2024-05-17 | \n",
" 75.269997 | \n",
" 78.000000 | \n",
" 74.919998 | \n",
" 77.849998 | \n",
" 77.849998 | \n",
" 14436500 | \n",
" 3.080002 | \n",
"
\n",
" \n",
" 8032 | \n",
" 2024-05-20 | \n",
" 77.680000 | \n",
" 78.320000 | \n",
" 76.709999 | \n",
" 77.540001 | \n",
" 77.540001 | \n",
" 11183800 | \n",
" 1.610001 | \n",
"
\n",
" \n",
" 8033 | \n",
" 2024-05-21 | \n",
" 77.559998 | \n",
" 78.220001 | \n",
" 77.500000 | \n",
" 77.720001 | \n",
" 77.720001 | \n",
" 8916600 | \n",
" 0.720001 | \n",
"
\n",
" \n",
" 8034 | \n",
" 2024-05-22 | \n",
" 77.699997 | \n",
" 81.019997 | \n",
" 77.440002 | \n",
" 80.720001 | \n",
" 80.720001 | \n",
" 22063400 | \n",
" 3.579995 | \n",
"
\n",
" \n",
" 8035 | \n",
" 2024-05-23 | \n",
" 80.099998 | \n",
" 80.699997 | \n",
" 79.169998 | \n",
" 79.260002 | \n",
" 79.260002 | \n",
" 4651418 | \n",
" 1.529999 | \n",
"
\n",
" \n",
"
\n",
"
8036 rows × 8 columns
\n",
"
"
],
"text/plain": [
" Date Open High Low Close Adj Close \\\n",
"0 1992-06-26 0.328125 0.347656 0.320313 0.335938 0.260703 \n",
"1 1992-06-29 0.339844 0.367188 0.332031 0.359375 0.278891 \n",
"2 1992-06-30 0.367188 0.371094 0.343750 0.347656 0.269797 \n",
"3 1992-07-01 0.351563 0.359375 0.339844 0.355469 0.275860 \n",
"4 1992-07-02 0.359375 0.359375 0.347656 0.355469 0.275860 \n",
"... ... ... ... ... ... ... \n",
"8031 2024-05-17 75.269997 78.000000 74.919998 77.849998 77.849998 \n",
"8032 2024-05-20 77.680000 78.320000 76.709999 77.540001 77.540001 \n",
"8033 2024-05-21 77.559998 78.220001 77.500000 77.720001 77.720001 \n",
"8034 2024-05-22 77.699997 81.019997 77.440002 80.720001 80.720001 \n",
"8035 2024-05-23 80.099998 80.699997 79.169998 79.260002 79.260002 \n",
"\n",
" Volume Difference \n",
"0 224358400 0.027343 \n",
"1 58732800 0.035157 \n",
"2 34777600 0.027344 \n",
"3 18316800 0.019531 \n",
"4 13996800 0.011719 \n",
"... ... ... \n",
"8031 14436500 3.080002 \n",
"8032 11183800 1.610001 \n",
"8033 8916600 0.720001 \n",
"8034 22063400 3.579995 \n",
"8035 4651418 1.529999 \n",
"\n",
"[8036 rows x 8 columns]"
]
},
"execution_count": 37,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"9. Удаление строк с пустыми значениями"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Date 0\n",
"Open 0\n",
"High 0\n",
"Low 0\n",
"Close 0\n",
"Adj Close 0\n",
"Volume 0\n",
"Difference 0\n",
"dtype: int64\n"
]
}
],
"source": [
"print(df.isna().sum())"
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Date | \n",
" Open | \n",
" High | \n",
" Low | \n",
" Close | \n",
" Adj Close | \n",
" Volume | \n",
" Difference | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 1992-06-26 | \n",
" 0.328125 | \n",
" 0.347656 | \n",
" 0.320313 | \n",
" 0.335938 | \n",
" 0.260703 | \n",
" 224358400 | \n",
" 0.027343 | \n",
"
\n",
" \n",
" 1 | \n",
" 1992-06-29 | \n",
" 0.339844 | \n",
" 0.367188 | \n",
" 0.332031 | \n",
" 0.359375 | \n",
" 0.278891 | \n",
" 58732800 | \n",
" 0.035157 | \n",
"
\n",
" \n",
" 2 | \n",
" 1992-06-30 | \n",
" 0.367188 | \n",
" 0.371094 | \n",
" 0.343750 | \n",
" 0.347656 | \n",
" 0.269797 | \n",
" 34777600 | \n",
" 0.027344 | \n",
"
\n",
" \n",
" 3 | \n",
" 1992-07-01 | \n",
" 0.351563 | \n",
" 0.359375 | \n",
" 0.339844 | \n",
" 0.355469 | \n",
" 0.275860 | \n",
" 18316800 | \n",
" 0.019531 | \n",
"
\n",
" \n",
" 4 | \n",
" 1992-07-02 | \n",
" 0.359375 | \n",
" 0.359375 | \n",
" 0.347656 | \n",
" 0.355469 | \n",
" 0.275860 | \n",
" 13996800 | \n",
" 0.011719 | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" 8031 | \n",
" 2024-05-17 | \n",
" 75.269997 | \n",
" 78.000000 | \n",
" 74.919998 | \n",
" 77.849998 | \n",
" 77.849998 | \n",
" 14436500 | \n",
" 3.080002 | \n",
"
\n",
" \n",
" 8032 | \n",
" 2024-05-20 | \n",
" 77.680000 | \n",
" 78.320000 | \n",
" 76.709999 | \n",
" 77.540001 | \n",
" 77.540001 | \n",
" 11183800 | \n",
" 1.610001 | \n",
"
\n",
" \n",
" 8033 | \n",
" 2024-05-21 | \n",
" 77.559998 | \n",
" 78.220001 | \n",
" 77.500000 | \n",
" 77.720001 | \n",
" 77.720001 | \n",
" 8916600 | \n",
" 0.720001 | \n",
"
\n",
" \n",
" 8034 | \n",
" 2024-05-22 | \n",
" 77.699997 | \n",
" 81.019997 | \n",
" 77.440002 | \n",
" 80.720001 | \n",
" 80.720001 | \n",
" 22063400 | \n",
" 3.579995 | \n",
"
\n",
" \n",
" 8035 | \n",
" 2024-05-23 | \n",
" 80.099998 | \n",
" 80.699997 | \n",
" 79.169998 | \n",
" 79.260002 | \n",
" 79.260002 | \n",
" 4651418 | \n",
" 1.529999 | \n",
"
\n",
" \n",
"
\n",
"
8036 rows × 8 columns
\n",
"
"
],
"text/plain": [
" Date Open High Low Close Adj Close \\\n",
"0 1992-06-26 0.328125 0.347656 0.320313 0.335938 0.260703 \n",
"1 1992-06-29 0.339844 0.367188 0.332031 0.359375 0.278891 \n",
"2 1992-06-30 0.367188 0.371094 0.343750 0.347656 0.269797 \n",
"3 1992-07-01 0.351563 0.359375 0.339844 0.355469 0.275860 \n",
"4 1992-07-02 0.359375 0.359375 0.347656 0.355469 0.275860 \n",
"... ... ... ... ... ... ... \n",
"8031 2024-05-17 75.269997 78.000000 74.919998 77.849998 77.849998 \n",
"8032 2024-05-20 77.680000 78.320000 76.709999 77.540001 77.540001 \n",
"8033 2024-05-21 77.559998 78.220001 77.500000 77.720001 77.720001 \n",
"8034 2024-05-22 77.699997 81.019997 77.440002 80.720001 80.720001 \n",
"8035 2024-05-23 80.099998 80.699997 79.169998 79.260002 79.260002 \n",
"\n",
" Volume Difference \n",
"0 224358400 0.027343 \n",
"1 58732800 0.035157 \n",
"2 34777600 0.027344 \n",
"3 18316800 0.019531 \n",
"4 13996800 0.011719 \n",
"... ... ... \n",
"8031 14436500 3.080002 \n",
"8032 11183800 1.610001 \n",
"8033 8916600 0.720001 \n",
"8034 22063400 3.579995 \n",
"8035 4651418 1.529999 \n",
"\n",
"[8036 rows x 8 columns]"
]
},
"execution_count": 39,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.dropna() "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"10. Заполнение пустых значений на основе существующих данных"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"df.fillna(df.mean(), inplace=True)\n",
"df.fillna(df.median(), inplace=True)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Возможности визуализации**"
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAz8AAAHDCAYAAAAKmqQIAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAACC/0lEQVR4nO3dd3hT1f8H8HdW073poi2UvVeBWrZS2QqKKIoKouDAAfoV4aeg4ihuHAhOwIEoMkSUvZGy9yqblkJboHTPJPf3R8ltbpO0aZs0afN+PU8f7z335NyTS4R8es75HJkgCAKIiIiIiIjqObm9O0BERERERFQbGPwQEREREZFTYPBDREREREROgcEPERERERE5BQY/RERERETkFBj8EBERERGRU2DwQ0REREREToHBDxEREREROQUGP0RERCSRmZmJc+fOQaPR2LsrRERWxeCHiJzWL7/8gkuXLonnCxcuREpKiv06RPXCkCFDMGHCBHt3o0pKSkrw4YcfomPHjlCr1fDz80Pz5s2xadMme3fNYjKZDG+99Va1X/v8889XWm/+/PmIjIxEUVFRte5DRPbH4IeIrGbhwoWQyWQmf9q1a2fv7hnZsWMHpk6dikuXLmHdunWYNGkS5HL+tUjV999//2H9+vV47bXX7N0VixUVFSEuLg4zZsxAv379sHTpUmzYsAGbN29GbGysXfr01ltvQSaT4caNGyavN27cGMOGDavlXgHjxo1DcXExvvnmm1q/NxFZh9LeHSCi+mfWrFmIiooSz9977z079sa8KVOmoF+/fmJfX375ZYSGhtq5V1SXffTRR+jfvz+aNWtm765Y7IMPPsCePXuwbt069OvXz97dqbaCggIolbb9WuPq6oqxY8fi008/xQsvvACZTGbT+xGR9TH4ISKrEQQBQOm0n+joaLH8+++/N/sbXHtq1aoVzp8/j+PHjyMwMBBNmza1d5eoDktPT8c///yD+fPn27srFtNoNJgzZw5eeeWVOh34AKWBSW148MEH8eGHH2LLli246667auWeRGQ9nN9BRFZTUlICAFAoFJXWNTU//6OPPoJMJpN8Cdu6dStkMhn+/PNPozY8PT0xbtw4SVlmZiYmT56MiIgIqNVqNGvWDB988AF0Op1Y59KlS5DJZFi4cCE8PDwQExODpk2bYtKkSZDJZJI29VP59u/fL7nPjRs3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3bJaey5KOVqFeMHX3QVqpRz+7i7ILiyBXC6Dq1IBfVwQFeiB/GINjiRnIflWPopKdCjW6tC0gQe0OgGFJTqcvJaNoR1CEe7nBhlkaOClRotgT5xJy0VGXhEa+rrD38MFGXnFuHA9F8dSsuDlqoK3mxJ3NAnAqWvZcFUpUFSiw43cIgCAAEAhAwpKtBAE4OiVLEwd1BL9WwXDx73q07msNa2MiIiIiJyTw29yWlxcjAMHDmD69OlimVwuR1xcHBISjNMPFxUVoaioSDzPzs6ulX5aolWIN/KKtAj1cUUDLzVyizSQyWQI93ODu0oBtUoOnQC0CPaEm0qJMF9X+Hu4ILdIg5xCDYo1OvHc100FPw8XixbR10Tv5g1s2n5VMPAhIiIiotpil+Dnxo0b0Gq1CA6Wrt0IDg7G6dOnjerHx8fj7bffrq3uVck7I6q3a7iXqwqhPlbuDBERERERmVUnfu0+ffp0ZGVliT/Jycn27hIREREREdUxdhn5CQwMhEKhQFpamqQ8LS0NISEhRvXVajXUanVtdY+IiIiIiOohu4z8uLi4IDo6Gps2bRLLdDodNm3ahNjYWHt0iYiIiIiI6jm7jPwAwMsvv4yxY8eia9eu6N69O+bMmYO8vDw88cQT9uoSERERERHVY3YLfh566CFcv34dM2fORGpqKjp16oS1a9caJUEgIiIiIiKyBrvt81MTjrTPDxERERER2U9VYoM6ke2NiIiIiIiophj8EBERERGRU2DwQ0REREREToHBDxEREREROQUGP0RERERE5BQY/BARERERkVNg8ENERERERE6BwQ8RERERETkFpb07UB36fVmzs7Pt3BMiIiIiIrInfUygjxEqUieDn5ycHABARESEnXtCRERERESOICcnBz4+PhXWkQmWhEgORqfT4erVq/Dy8oJMJrNrX7KzsxEREYHk5GR4e3vbtS/1EZ+vbfH52g6frW3x+doWn6/t8NnaFp+vbTnq8xUEATk5OQgLC4NcXvGqnjo58iOXyxEeHm7vbkh4e3s71IegvuHztS0+X9vhs7UtPl/b4vO1HT5b2+LztS1HfL6VjfjoMeEBERERERE5BQY/RERERETkFBj81JBarcabb74JtVpt767US3y+tsXnazt8trbF52tbfL62w2drW3y+tlUfnm+dTHhARERERERUVRz5ISIiIiIip8Dg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",
"text/plain": [
"