You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
store/第九章实战.ipynb

1773 lines
233 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "61641ecb",
"metadata": {
"pycharm": {
"name": "#%%\n"
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>user_id</th>\n",
" <th>item_id</th>\n",
" <th>category_id</th>\n",
" <th>behavior_type</th>\n",
" <th>time</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1</td>\n",
" <td>2268318</td>\n",
" <td>2520377</td>\n",
" <td>pv</td>\n",
" <td>1511544070</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1</td>\n",
" <td>2333346</td>\n",
" <td>2520771</td>\n",
" <td>pv</td>\n",
" <td>1511561733</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1</td>\n",
" <td>2576651</td>\n",
" <td>149192</td>\n",
" <td>pv</td>\n",
" <td>1511572885</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>1</td>\n",
" <td>3830808</td>\n",
" <td>4181361</td>\n",
" <td>pv</td>\n",
" <td>1511593493</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>1</td>\n",
" <td>4365585</td>\n",
" <td>2520377</td>\n",
" <td>pv</td>\n",
" <td>1511596146</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" user_id item_id category_id behavior_type time\n",
"0 1 2268318 2520377 pv 1511544070\n",
"1 1 2333346 2520771 pv 1511561733\n",
"2 1 2576651 149192 pv 1511572885\n",
"3 1 3830808 4181361 pv 1511593493\n",
"4 1 4365585 2520377 pv 1511596146"
]
},
"execution_count": 1,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import pandas as pd\n",
"import matplotlib.pyplot as plt\n",
"import datetime\n",
"import matplotlib\n",
"data = pd.read_csv('UserBehavior.csv', header=None, nrows=200000,\n",
" names=['user_id', 'item_id', 'category_id', 'behavior_type', 'time']) #由于数据量过大这里只导入20万条数据\n",
"data.head()"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "57d6c412",
"metadata": {
"pycharm": {
"name": "#%%\n"
}
},
"outputs": [
{
"data": {
"text/plain": [
"user_id 0\n",
"item_id 0\n",
"category_id 0\n",
"behavior_type 0\n",
"time 0\n",
"dtype: int64"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data.isnull().sum()"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "caf4c62c",
"metadata": {
"pycharm": {
"name": "#%%\n"
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th>user_id</th>\n",
" </tr>\n",
" <tr>\n",
" <th>user_id</th>\n",
" <th>item_id</th>\n",
" <th>time</th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
"Empty DataFrame\n",
"Columns: [user_id]\n",
"Index: []"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"repeat = data.groupby(['user_id','item_id','time']).agg({'user_id':'count'})\n",
"repeat[repeat['user_id'] > 1]"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "9e826afe",
"metadata": {
"pycharm": {
"name": "#%%\n"
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>user_id</th>\n",
" <th>item_id</th>\n",
" <th>category_id</th>\n",
" <th>behavior_type</th>\n",
" <th>time</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1</td>\n",
" <td>2268318</td>\n",
" <td>2520377</td>\n",
" <td>pv</td>\n",
" <td>2017-11-25 01:21:10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1</td>\n",
" <td>2333346</td>\n",
" <td>2520771</td>\n",
" <td>pv</td>\n",
" <td>2017-11-25 06:15:33</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1</td>\n",
" <td>2576651</td>\n",
" <td>149192</td>\n",
" <td>pv</td>\n",
" <td>2017-11-25 09:21:25</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>1</td>\n",
" <td>3830808</td>\n",
" <td>4181361</td>\n",
" <td>pv</td>\n",
" <td>2017-11-25 15:04:53</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>1</td>\n",
" <td>4365585</td>\n",
" <td>2520377</td>\n",
" <td>pv</td>\n",
" <td>2017-11-25 15:49:06</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" user_id item_id category_id behavior_type time\n",
"0 1 2268318 2520377 pv 2017-11-25 01:21:10\n",
"1 1 2333346 2520771 pv 2017-11-25 06:15:33\n",
"2 1 2576651 149192 pv 2017-11-25 09:21:25\n",
"3 1 3830808 4181361 pv 2017-11-25 15:04:53\n",
"4 1 4365585 2520377 pv 2017-11-25 15:49:06"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data['time'] = pd.to_datetime(data['time'], unit='s') + datetime.timedelta(hours=8)\n",
"data.head()"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "d45943ca",
"metadata": {
"pycharm": {
"name": "#%%\n"
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>user_id</th>\n",
" <th>item_id</th>\n",
" <th>category_id</th>\n",
" <th>behavior_type</th>\n",
" <th>time</th>\n",
" <th>date</th>\n",
" <th>hour</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1</td>\n",
" <td>2268318</td>\n",
" <td>2520377</td>\n",
" <td>pv</td>\n",
" <td>2017-11-25 01:21:10</td>\n",
" <td>2017-11-25</td>\n",
" <td>01</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1</td>\n",
" <td>2333346</td>\n",
" <td>2520771</td>\n",
" <td>pv</td>\n",
" <td>2017-11-25 06:15:33</td>\n",
" <td>2017-11-25</td>\n",
" <td>06</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1</td>\n",
" <td>2576651</td>\n",
" <td>149192</td>\n",
" <td>pv</td>\n",
" <td>2017-11-25 09:21:25</td>\n",
" <td>2017-11-25</td>\n",
" <td>09</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>1</td>\n",
" <td>3830808</td>\n",
" <td>4181361</td>\n",
" <td>pv</td>\n",
" <td>2017-11-25 15:04:53</td>\n",
" <td>2017-11-25</td>\n",
" <td>15</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>1</td>\n",
" <td>4365585</td>\n",
" <td>2520377</td>\n",
" <td>pv</td>\n",
" <td>2017-11-25 15:49:06</td>\n",
" <td>2017-11-25</td>\n",
" <td>15</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" user_id item_id category_id behavior_type time \\\n",
"0 1 2268318 2520377 pv 2017-11-25 01:21:10 \n",
"1 1 2333346 2520771 pv 2017-11-25 06:15:33 \n",
"2 1 2576651 149192 pv 2017-11-25 09:21:25 \n",
"3 1 3830808 4181361 pv 2017-11-25 15:04:53 \n",
"4 1 4365585 2520377 pv 2017-11-25 15:49:06 \n",
"\n",
" date hour \n",
"0 2017-11-25 01 \n",
"1 2017-11-25 06 \n",
"2 2017-11-25 09 \n",
"3 2017-11-25 15 \n",
"4 2017-11-25 15 "
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data['date'] = data['time'].map(lambda x: x.strftime('%Y-%m-%d %H').split(' ')[0]) # 设置日期列\n",
"data['hour'] = data['time'].map(lambda x: x.strftime('%Y-%m-%d %H').split(' ')[1]) # 设置时间列\n",
"pd.set_option('display.max_columns', 10)\n",
"data.head()"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "a78247b7",
"metadata": {
"pycharm": {
"name": "#%%\n"
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>user_id</th>\n",
" <th>item_id</th>\n",
" <th>category_id</th>\n",
" <th>behavior_type</th>\n",
" <th>time</th>\n",
" <th>date</th>\n",
" <th>hour</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1000169</td>\n",
" <td>1328010</td>\n",
" <td>959452</td>\n",
" <td>pv</td>\n",
" <td>2017-09-11 16:16:39</td>\n",
" <td>2017-09-11</td>\n",
" <td>16</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1004259</td>\n",
" <td>3734552</td>\n",
" <td>1573426</td>\n",
" <td>pv</td>\n",
" <td>2017-11-17 21:22:30</td>\n",
" <td>2017-11-17</td>\n",
" <td>21</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1007503</td>\n",
" <td>2137467</td>\n",
" <td>2778281</td>\n",
" <td>pv</td>\n",
" <td>2017-11-19 06:36:15</td>\n",
" <td>2017-11-19</td>\n",
" <td>06</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>1006359</td>\n",
" <td>359872</td>\n",
" <td>84264</td>\n",
" <td>pv</td>\n",
" <td>2017-11-20 01:32:45</td>\n",
" <td>2017-11-20</td>\n",
" <td>01</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>1000801</td>\n",
" <td>1034143</td>\n",
" <td>2465336</td>\n",
" <td>pv</td>\n",
" <td>2017-11-20 22:15:14</td>\n",
" <td>2017-11-20</td>\n",
" <td>22</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>1007609</td>\n",
" <td>4146999</td>\n",
" <td>235534</td>\n",
" <td>pv</td>\n",
" <td>2017-11-22 21:01:05</td>\n",
" <td>2017-11-22</td>\n",
" <td>21</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>1007609</td>\n",
" <td>2903641</td>\n",
" <td>1379146</td>\n",
" <td>pv</td>\n",
" <td>2017-11-22 21:01:10</td>\n",
" <td>2017-11-22</td>\n",
" <td>21</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>1007609</td>\n",
" <td>1544812</td>\n",
" <td>235534</td>\n",
" <td>pv</td>\n",
" <td>2017-11-22 21:02:23</td>\n",
" <td>2017-11-22</td>\n",
" <td>21</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>1007609</td>\n",
" <td>3422704</td>\n",
" <td>1379146</td>\n",
" <td>pv</td>\n",
" <td>2017-11-22 21:02:32</td>\n",
" <td>2017-11-22</td>\n",
" <td>21</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>1000807</td>\n",
" <td>1662243</td>\n",
" <td>3354571</td>\n",
" <td>pv</td>\n",
" <td>2017-11-23 02:03:21</td>\n",
" <td>2017-11-23</td>\n",
" <td>02</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" user_id item_id category_id behavior_type time \\\n",
"0 1000169 1328010 959452 pv 2017-09-11 16:16:39 \n",
"1 1004259 3734552 1573426 pv 2017-11-17 21:22:30 \n",
"2 1007503 2137467 2778281 pv 2017-11-19 06:36:15 \n",
"3 1006359 359872 84264 pv 2017-11-20 01:32:45 \n",
"4 1000801 1034143 2465336 pv 2017-11-20 22:15:14 \n",
"5 1007609 4146999 235534 pv 2017-11-22 21:01:05 \n",
"6 1007609 2903641 1379146 pv 2017-11-22 21:01:10 \n",
"7 1007609 1544812 235534 pv 2017-11-22 21:02:23 \n",
"8 1007609 3422704 1379146 pv 2017-11-22 21:02:32 \n",
"9 1000807 1662243 3354571 pv 2017-11-23 02:03:21 \n",
"\n",
" date hour \n",
"0 2017-09-11 16 \n",
"1 2017-11-17 21 \n",
"2 2017-11-19 06 \n",
"3 2017-11-20 01 \n",
"4 2017-11-20 22 \n",
"5 2017-11-22 21 \n",
"6 2017-11-22 21 \n",
"7 2017-11-22 21 \n",
"8 2017-11-22 21 \n",
"9 2017-11-23 02 "
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data = data.sort_values(by=['date', 'hour'], ascending=True)\n",
"data = data.reset_index(drop=True)\n",
"data.head(10)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "f95ac6e5",
"metadata": {
"pycharm": {
"name": "#%%\n"
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>user_id</th>\n",
" <th>item_id</th>\n",
" <th>category_id</th>\n",
" <th>behavior_type</th>\n",
" <th>time</th>\n",
" <th>date</th>\n",
" <th>hour</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1000</td>\n",
" <td>1385281</td>\n",
" <td>2352202</td>\n",
" <td>pv</td>\n",
" <td>2017-11-25 00:44:13</td>\n",
" <td>2017-11-25</td>\n",
" <td>00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1000</td>\n",
" <td>5120034</td>\n",
" <td>1051370</td>\n",
" <td>cart</td>\n",
" <td>2017-11-25 00:47:14</td>\n",
" <td>2017-11-25</td>\n",
" <td>00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1000004</td>\n",
" <td>2156592</td>\n",
" <td>3607361</td>\n",
" <td>pv</td>\n",
" <td>2017-11-25 00:00:41</td>\n",
" <td>2017-11-25</td>\n",
" <td>00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>1000004</td>\n",
" <td>1591982</td>\n",
" <td>672001</td>\n",
" <td>pv</td>\n",
" <td>2017-11-25 00:02:13</td>\n",
" <td>2017-11-25</td>\n",
" <td>00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>1000084</td>\n",
" <td>850738</td>\n",
" <td>2058468</td>\n",
" <td>pv</td>\n",
" <td>2017-11-25 00:55:17</td>\n",
" <td>2017-11-25</td>\n",
" <td>00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>1000084</td>\n",
" <td>4288055</td>\n",
" <td>144028</td>\n",
" <td>pv</td>\n",
" <td>2017-11-25 00:56:07</td>\n",
" <td>2017-11-25</td>\n",
" <td>00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>1000084</td>\n",
" <td>4474837</td>\n",
" <td>144028</td>\n",
" <td>pv</td>\n",
" <td>2017-11-25 00:56:52</td>\n",
" <td>2017-11-25</td>\n",
" <td>00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>1000084</td>\n",
" <td>4288055</td>\n",
" <td>144028</td>\n",
" <td>pv</td>\n",
" <td>2017-11-25 00:57:27</td>\n",
" <td>2017-11-25</td>\n",
" <td>00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>1000084</td>\n",
" <td>4474837</td>\n",
" <td>144028</td>\n",
" <td>pv</td>\n",
" <td>2017-11-25 00:58:59</td>\n",
" <td>2017-11-25</td>\n",
" <td>00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>1000084</td>\n",
" <td>4288055</td>\n",
" <td>144028</td>\n",
" <td>pv</td>\n",
" <td>2017-11-25 00:59:09</td>\n",
" <td>2017-11-25</td>\n",
" <td>00</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" user_id item_id category_id behavior_type time \\\n",
"0 1000 1385281 2352202 pv 2017-11-25 00:44:13 \n",
"1 1000 5120034 1051370 cart 2017-11-25 00:47:14 \n",
"2 1000004 2156592 3607361 pv 2017-11-25 00:00:41 \n",
"3 1000004 1591982 672001 pv 2017-11-25 00:02:13 \n",
"4 1000084 850738 2058468 pv 2017-11-25 00:55:17 \n",
"5 1000084 4288055 144028 pv 2017-11-25 00:56:07 \n",
"6 1000084 4474837 144028 pv 2017-11-25 00:56:52 \n",
"7 1000084 4288055 144028 pv 2017-11-25 00:57:27 \n",
"8 1000084 4474837 144028 pv 2017-11-25 00:58:59 \n",
"9 1000084 4288055 144028 pv 2017-11-25 00:59:09 \n",
"\n",
" date hour \n",
"0 2017-11-25 00 \n",
"1 2017-11-25 00 \n",
"2 2017-11-25 00 \n",
"3 2017-11-25 00 \n",
"4 2017-11-25 00 \n",
"5 2017-11-25 00 \n",
"6 2017-11-25 00 \n",
"7 2017-11-25 00 \n",
"8 2017-11-25 00 \n",
"9 2017-11-25 00 "
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_bool = (data.loc[:, 'date'] > '2017-11-24') & (data.loc[:, 'date'] < '2017-12-04')\n",
"data = data.loc[df_bool, :].reset_index(drop=True)\n",
"data.head(10)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "d259d2b5",
"metadata": {
"pycharm": {
"name": "#%%\n"
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>user_id</th>\n",
" <th>item_id</th>\n",
" <th>category_id</th>\n",
" <th>behavior_type</th>\n",
" <th>time</th>\n",
" <th>date</th>\n",
" <th>hour</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
"Empty DataFrame\n",
"Columns: [user_id, item_id, category_id, behavior_type, time, date, hour]\n",
"Index: []"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"drop_data = data[(data['behavior_type'] != 'pv' ) &\n",
" (data['behavior_type'] != 'cart' ) &\n",
" (data['behavior_type'] != 'buy' ) &\n",
" (data['behavior_type'] != 'fav' )]\n",
"drop_data"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "7c502428",
"metadata": {
"pycharm": {
"name": "#%%\n"
}
},
"outputs": [
{
"data": {
"text/plain": [
"user_id False\n",
"item_id False\n",
"category_id False\n",
"behavior_type False\n",
"time False\n",
"date False\n",
"hour False\n",
"dtype: bool"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data.isnull().any()"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "061c1691",
"metadata": {
"pycharm": {
"name": "#%%\n"
}
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA0cAAAIbCAYAAAAggeW7AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAB31klEQVR4nO3dd3gU1eLG8Xez6YQkJAEhEDBIBEGKUgQFEWxIk2JDFFHAygX1ij8LxYoNUFGsKFwRbKggojQpVxEUkCJEEBAEE0qAwAZC6s7vj7m7ZMkm2U2yqd/P8+yTzM7MmTMnIcy758wZi2EYhgAAAACgmvMr7woAAAAAQEVAOAIAAAAAEY4AAAAAQBLhCAAAAAAkEY4AAAAAQBLhCAAAAAAkEY4AAAAAQBLhCAAAAAAkEY4AwGNHjhzR2rVrtXbtWiUlJZV3daq89PR0paSk+Pw4O3bs8PkxAACVA+EIQJnYsGGD3nnnHb3zzjvatWuXx/stW7ZMjzzyiB555BH9888/Pqxh0X744Qd16tRJnTp10n/+858SlWWz2fTSSy/pp59+KqXaVR02m01jxoxRo0aN9O9//9unxzp69KjatWunTp06ae7cucrNzfXp8VA2Dh06pOXLl5d3NQBUQv7lXQEA1cPSpUv1+OOPS5IWLlyoJk2aeLTf5s2bNXnyZEnSvffe67P6eSIoKMjt957Izc3Vzp07tXr1ai1evFiLFy+WzWbTlVdeqWXLljm3S0lJUZ06dYos7/PPP9eNN97o8fEzMjKUkZHhVZ09ZbVaVbNmzVIrLywsTAsXLtSRI0c0Z84cPf3004qPjy+18vOaNGmSTp48qbVr1+rLL7/UwIEDfXKcs504cULZ2dkKDQ1VQECA/P39ZbFYilVWdna2MjMzna+oqCgFBwcXud+GDRt0zz33aNq0abrkkkuKdey87Ha7tm7dqmXLlumHH37QZ599prCwsAK3/+WXX9SxY8ciyw0LC1NaWlqRx96+fbtWrlyp77//XosXL5bVatXq1at18cUXe1T/3377TXPmzPFoW0/16tVL3bp1K9UyAfgW4QhAmQgJCXF+X6NGDY/3y7utJxd8vuRtOEpNTVXfvn119OhR/fXXX8rMzMy3zapVq7R06VJdffXVkqSAgACP6hIeHu5hrU2TJk3SuHHjvNrHU82aNdMff/xRauX5+flp3LhxuvXWW5Wbm6vJkyfrzTffLLXyHQ4fPuwst3Hjxpo+fXqxA0pOTo5ycnJ0+vRppaenq379+oVu/8ILL+ill14q1rGK8v3336tHjx6FbrNjxw716NFDR44cUefOnfXkk09q3LhxslqtRZZvGIaSk5O1c+dObd++Xdu2bdOWLVu0ceNGlxAzcuRIzZw5s8ByPP07EBoa6vz+xIkT+ueff/T3339r165d+uOPP7R161Zt3rw5X4DKzs5Wv379tHHjRkVHRxd5nD179jg/iCkt5557LuEIqGQIRwBKXUZGhgICAlwutPJe4HhyAeZQWFjIysqSv7+//PzOjBDOzs7W7t27PSo7MjJSdevW9bgugYGBHtXLwc/Pz2XYnNVqVdOmTXXRRRepbdu2at++vS6++GKXtsl7jHfeeUc333yzc3nfvn1q3bq1JNew6QlfBktve9E8ceONN+rhhx/WwYMHNXPmTD3//POKiIgo1WPcc889OnnypCTpr7/+KrSXw1uGYZRaWb7QsGFDDRo0SG+++aZycnL09NNP68cff9Tnn3+u6OhoJSYmasmSJcrKytLx48d1+PBhJSUlaf/+/frrr790+vTpAsuuUaOGzjvvPKWmpioxMVHNmzd3u13e3/tt27YpNjbWZf2cOXP0wAMPKCQkRBkZGbrgggu0d+/eAo8bHR2tFi1aqGXLlmrdurUuuugitWzZ0uPfz7xhbf/+/WrQoIFH+7nj7++v3NzcUv2dAlA2CEcASl3v3r31ww8/KCgoyBmSsrKynOuvu+46jwNS3v1atGghi8WinJwcZWVlKTs7Wxs3blSbNm2c2xw4cEAXXHCBR2Xfc889eueddzw7KcmlVyFvICtI3outESNGaOrUqUWGlOzsbOf3kZGRioyMdC4fP37c+b2nPUzuti/swu+5555z9jDt2bNH5557boFlnnvuufr77799Eo78/f01ZMgQvfzyy6pXr562bdumSy+9tNTKnzlzpubNm1dq5Xnrsssu06OPPqqwsDD5+/vLarW6/Z367bff9Mknn0gyh5Wed955+bbJyspyGVbXqFGjIo8fEhKiqVOn6rrrrtPtt9+uo0ePavny5WrXrp2+/vprJSQk6JVXXlFycnKh5cTGxuruu+9WfHy8GjdurCZNmnj8gYO//5lLkPDwcJffdelMePL391dwcLCGDx+usWPHymKx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WlqaUlJSlJ6ervT09AJ/z/Pes7Rt2zbnA5v9/Pzk7+/v0SQZDo5JOiSpadOmbrfJyclxPousYcOGBT6S4K+//lJ2dnaJfv4AygfhCECVUpLhWu+9955atGghm82msWPH6pZbbilyyFBpiYuL0/fff6/FixfrtddeU3BwsH799Ve3s7v169dPO3bsUMuWLd3ey+FO3qFInj7DpbBZ2oqroCFRpaWgELh161ZdccUVBe43ZswYjRkzptCyP//88wLXffvtt/nuvfn999914YUXFlpmYRyz59WrV08XXXSRvvvuO73xxhsaPXq0ateuXexy3bn++uuVkpJS6uUWxjFDXt6Z8hz69u3r/P6cc84pcDa7TZs2Ob/fvn27Dhw4kG+GPk85gpTVanUblCWzN8/x72f27NkFzrrZpEkT7d69u8gp/gFUPIQjAKUqJSXFeTN3QEBAqU9V7JCbm+ucsjgoKMh5EeJNODp7CFaDBg10//3368UXX9TRo0f1zDPPaMqUKaVS3wkTJmjChAkuU3k7htVJ5gVijx49FB8fr9dee00ZGRk6fPiw87lKDsnJyfrzzz8lST169PD4+L4OJZ46cOCA8/shQ4bo8ccfL3GZv/76q+644w5JBQ+9tFgsCgkJUXh4uPz9/Z09R47Z9mJjY12CqGM4lrsL97wOHTqkjIwMRUZGKiwszHm/z8mTJ0v0e//tt9/qt99+kyQNGjRIN910k7777jvZbDZNmDBBb731VrHLdicxMVHdu3fXggUL1L59e0lmGxT0EFNHCM3JySm0tzciIqLAdnC0t7v7ourVqyd/f3+lp6cX+HDao0ePauvWrS7vff3110Xel1UQRz1yc3MLfP5W3vBd2MOsHfczFWd2PQDli3AEoFT16dNHv/zyS7H3L84F5axZs5wPUi1JOJKkf/3rX5oyZYqysrK0fv16ZWVlFXhx5i3HkB/HA2fdXXg3bdpU8fHx2rNnjz777LN84ejzzz931vvOO+/0+Nh5H3aalJTkdiiTZA7/e/755yVJmzdvVsOGDQsss1WrVtq/f7/HdZDMT94d2rVrVyoPgT106JDzItRx79rZLrvssnwTehw/ftw5EcOPP/6oxo0bO9eNHj1aCxcu1IIFCwodutilSxf99NNPeuKJJ4rsefLGU0895fz+jjvuUKtWrXTNNddoyZIleu+993T77ber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VYbNZjMiIiIMScYtt9xS5PYTJkxwHm/Xrl2Fblu/fn1DknHVVVcVWe6GDRsMi8ViSDJatWrlcf196Y477nCea2m+7rjjDo+On5aWZowaNcpl33r16hm///67R/vPmzfP5fcjMjLSeO+994ycnJwi983JyTHat2/v3HfevHn5tlmzZo1z/Z49ezyqk2Gc+R2yWq2Fbte1a1dDknH11VcbkydPNm699dYC23TatGmGYRjGrFmznO916tQpX5mJiYlGYGCgIcmoX7++cfDgQY/qPHr0aJ/8Lkgy3n//fY/bDkD5o+cIgM/s3LlT48eP16effirJnP3sP//5j/N+Gk88/vjjatCgge69914dOnRIgwYN0sSJE/Xwww/rpptuyncjfFHDi2rXru2c5coxo1Rpe/LJJ/XSSy+pZs2aCg4OVmZmplfDrux2uz766CM99thjLvdBnDhxQrfccoueeuopdenSxaOyPvzwQ+c03o5Z8AqTt/3Obsvs7Gzl5OQoNzdXv/zyi5KTkyWZPXRFlXnPPfc4e6UcEw6UN2+nIS8thmHoiy++0L///W+Xqc3btGmjBQsWqEGDBh6Vc/3112vFihUaMGCADh48qOPHj+vuu+/WxIkT9dBDD2nIkCEFPsT4hRde0Lp16yRJF198sa6//nq39XQozQcCT548WXPnznU+x2np0qVaunSpyzZ169bV5Zdfrssvv1xdunRRy5YttWLFCg0bNkySOUPdrFmz8pV9wQUXaNy4cRo3bpySkpLUp08fLV26tMjfUYvFoqCgINWoUUM1atQocIKNnJwc59DHhg0buu3dMwxDubm5ys3N1enTp302KQUAHynfbAagqsnNzTWWLl1q9OvXz7BarS6f8v71119u9yms58hh69atxsUXX+zyiWx4eLgxePBg47PPPnN+Wv73338X2nNUEnPnzvWo5ygvx6fY48ePL3LblJQUY9KkSUZ8fLzzOFar1Rg6dKjLe5KMZs2aGU888YSxatUqIysry215R48eNerUqWNIMho0aOBRj8IjjzziPMbmzZtd1m3ZssXtJ+Nn9wQWVmbTpk09qkdl8NVXXznPKy0tzcjMzDRSU1ONY8eOud0+PT3dmDVrlnHhhRe6tJ/FYjFGjhxppKenF6seycnJRu/evfP9XPz9/Y3u3bsbGzZscNl+9erVhr+/v3O7+fPnuy33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JwAAAFAZeRyO/vjjD7344ou66aabdM455+i+++7Txo0blZOTo23btunyyy9XZGSkIiMjVbNmTUnS999/rxMnTmjKlCk677zzNHHiRH3wwQeSpNmzZys2Nlbjxo1TQkKCxo8f71w3ffp0devWTcOHD1fLli01cuRIzZo1ywenX7ksWLBA3bp109GjR13e9/f314MPPqjdu3e73c8wDA0YMECHDh3SwoULFRUV5fxZOV7+/v564403XPYbOnSomjVrpiuuuMLty2KxELIAAABQZXgcjnr37q27777bubxjxw4lJCTo999/l91uV5s2bRQSEqIePXpo3759kqTNmzerY8eOzvtOWrVqpcTEROe6bt26OYdddejQQRs2bHCu6969u/NYeddVZzfccIMuv/xyDR8+3CWUNGvWTKNHj3YOc5TMQOQYwvjEE0/oqquuUlpamvr27atTp07JZrPp+PHjzlfnzp0VGBjocrygoCDZ7Xbl5OS4fQUGBsrPr9rdtgYAAIAqqliz1WVlZWny5Ml6+OGHlZiYqKZNm+qNN95QTEyMHnroId19991atGiRbDab4uPjnftZLBZZrValpqbKZrOpefPmznXh4eFKTk6WpHz75V3nTmZmpjIzM53LNputOKdVKUydOlU//vijPvnkEw0dOlQhISFKT09XWFiYpk2bJskMRqdPn9bGjRv14osvqn///oUOu3M4eza53Nxc3XzzzerVq5fb7Tt37lzyEwIAAAAqiGKFowkTJqhGjRoaPny4AgICNHjwYOe6t956S/Hx8bLZbPL391dQUJDLvsHBwUpPT8+3zvG+pELXufPCCy/o6aefLs6plMxXX0lPPy39+ad0/vnShAnSgAE+OdTx48e1f/9+BQQEqHPnzoqJidHgwYOVkZGhkJCQAh9ou3PnTp04caJYx+zVq5c2b96sRYsWuV0/duxY2e12eo8AAABQJXgdjpYvX65p06Zp7dq1CggIyLe+Tp06stvtOnDggKKiorR161aX9WlpaQoMDFRUVJRSUlLyvS+p0HXuPP7443r44YedyzabTXFxcd6emne++koaOFCyWCTDkH7/3Vz+8kufBKRffvlFN998s9LT0zV27FiNHz/eo/38/f2dQxf9/f1Vo0YN5/LJkyc1ffp0DR061GWfF198UZ999pkiIiIUFhZWYNm5ubm69NJL1bhxY82ZM6d4JwYAAABUEF6Foz179mjQoEGaNm2ac0jcmDFjdNFFF+nWW2+VJK1Zs0Z+fn6Ki4tT+/bt9f7777vsn5mZqaioKLVv397lgnrjxo2qX7++JKl9+/Zas2aNhg0blm+dO0FBQfl6qLz24IPSpk2eb79+vfnVMTW54+uQIdLUqZ6X06aN9NprRW527bXX6vjx4xo6dKjLuWZlZUmSYmJinO8dPXpUKSkpLu9JZg/c7t27ne9fccUVbkPnY489pscee0xffvml9u/fX2i97rrrLoWHhxdZfwAAgAqjDEf/oHLxOBydPn1avXv31vXXX6/+/fvr5MmTksxJFsaOHatzzjlHubm5+te//qUhQ4YoNDRUl19+uWw2m2bMmKE777xTEydO1FVXXSWr1aq+ffvqgQce0LJly9S1a1e9/PLLuvbaayVJAwcO1GWXXabRo0crPj5eU6dO1W233eabFnDYtElatark5Zw6VTrlFCLvvUE2m02RkZE6cuSIJPP+qxo1aig6OrrQ/Rzc9f45vPfee2rTpo06deokSXrkkUc0atQoNWzYUJI0aNAgDRo0iHAEAAAqjzIe/YPKxeNwtGTJEiUmJioxMTFfb9DNN9+sgQMHymq16rbbbtPEiRPNwv39NX36dA0aNEhjxoyRn5+fVq5cKcns6Xj11VfVs2dPhYWFKTIy0vkMpNatW2v06NFq166dgoODlZCQoPvvv7/0ztqdNm282379ejMIna1GDaldO98d9yz79+93mbwiNTVVtWrVcvvw1ezs7Hzv5eTkFFi2n5+fvv76a636X9g7ePCgPvjgA4WEhEgye6243wgAAFQqTz99JhhJZ74OHy5t2CDVry/Fxp75es45kn+xbtNHJeTxT/r66693Tg19thdeeEEvvPCC23V9+/bV7t27tWHDBnXs2NGlR+Pee+/Vtddeq+3bt6tLly4u97c8//zzGjx4sJKSktS1a9dC7zkqFR4MbXNx9qcOjq+zZkn9+/ukinm98MILiouL059//qlLLrnE+f6xY8cUFRXldp+QkBA1adLE5b2CfqaSGVIbN26sWrVqSZL27dunjh07qnbt2pLktncKAACgQtux40wgyis1VfrfB/wu/PzMgHR2aKpf3/X7yEjzehCVWpnE4Lp16xY4HXR8fLxLz0dezZs3d5nuu0IZMMDsfn3mGfMfWdOm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UNu3b9eiRYskSa+//rpSUlL03HPPqV+/fqpbt67eeecdSdJDDz2kFi1aaPjw4UXW02azKSIiQidOnFB4eHhx2gUAAKD8fPWVNGGClJho3mskSR06SIsWSbVqlW/dgErGm2zgVc9R7969ncFIknbs2KGEhARt3rxZHTt2VGhoqCSpVatWSkxMlCRt3rxZ3bp1k8VikSR16NBBGzZscK7r3r27szxP150tMzNTNpvN5QUAAFDp2GzS009LAwdKW7eeCUaS9K9/EYwAH/P6niOHrKwsTZ48Wffee69sNpvi4+Od6ywWi6xWq1JTU/OtCw8PV3JysiQVe93ZXnjhBUVERDhfcXFxxT0tAACAspGVJa1fL731ljR0qNS8uRQZKT31VP5tLZYzzzUC4DPFnq1uwoQJqlGjhoYPH66xY8cqKCjIZX1wcLDS09Pl7+/vss7xvqRirzvb448/rocffti5bLPZCEgAAKDisNulnTulX38989q0yQxInjAM6X/3ZQPwnWKFo+XLl2vatGlau3atAgICFBUVpa1bt7psk5aWpsDAQEVFRSklJSXf+5KKve5sQUFB+cIZAABAuUlKMgPQunVnvhY27D8y0rynqH17afZs6e+/zUDkYLFITZv6vNpAded1ONqzZ48GDRqkadOmqXnz5pKk9u3b6/3333fZJjMzU1FRUWrfvr3mzJnjXLdx40bV/9/Uk+3bt9eaNWs0bNiwAtddeeWV+dYBAABUGMePm8Pj8oahAm4FkCQFBUkXX3wmDHXoIDVpYgYgyVw3cKC5bBhnvk6YUCanA1RnXs1Wd/r0abVr106XXXaZy/OKgoKCVL9+fb300ku68847NWLECB08eFALFizQkSNHFBcXpwULFqhr167q27evmjRpojfeeEObN2/WZZddpjVr1ig+Pl5dunTRbbfdpn//+9/65ptvdO+992rdunXy9/dX27Zt9frrr2vgwIFF1pPZ6gAAgE9kZEibN58ZGrduXeHD3fz8zHuJOnQ487rwQikgoPDjfPWV9MwzZtlNm5rBqH//0j0XoJrwJht4FY7mz5+vfv365Xt/z5492rJliwYNGqSQkBD5+flp5cqVzp6ld955R6NGjVJYWJgiIyO1Zs0anXPOOZKkJ598UpMmTVJwcLASEhL0448/KiQkRIZhaMiQIfryyy8lSVdeeaW++eYb56x3pdUAAAAAbuXmmuEk731CW7aYD2UtyLnnnukN6tDB7AUKCyuzKgPIz2fhqCgHDx7Uhg0b1LFjR0VHR7us27Nnj7Zv364uXboo7Kw/EomJiUpKSlLXrl3z3Ve0bt06nTp1Sl27dvUoGEmEIwAA4CXDkPbvdx0at369dPJkwftER58JQe3bm686dcquzgA8Um7hqKIgHAEAgEIdO+Y6WcKvv0qHDhW8fUiI1LataxiKjz9znxCACsubbFDsqbwBAAAqhdOnpY0bXe8T2rWr4O2tVvO+oLz3CTVvLvlz2QRUdfwrBwAAVUdurpSY6Hqf0O+/m+8X5LzzXGeOu+giKTS07OoMoMIgHAEAgMrJMKS9e88Mi/v1V2nDBqmAh8ZLMu8JOvs+obPukwZQfRGOAABA5ZCSYgahvGHoyJGCtw8Lc71PqEMHKS6O+4QAFIhwBAAAKp5Tp6TffnO9T2jPnoK39/eXWrd2nUa7WTPz/iEA8BDhCAAAlK/sbGnbNtf7hLZtk+z2gvc5/3zX+4TatJGCg8usygCqJsIRAAAoO4Yh7d7tOjTut9+kjIyC96lXz3VoXNu2Uq1aZVdnANUG4QgAAPjOoUOuzxJat858xlBBwsPPTJTgCEP165ddfQFUa4QjVG5ffSU9/bT055/mEIsJE6QBA8q7VgBQ9bn7+3v11eZscXnD0L59BZcRGGgOh8s7PO788yU/vzI7DQDIy2IYhlHelSht3jwFF5XYV19JAweasw4ZxpmvX35JQAIAX8jJkdLSpM8+k+6778zfXU9YLOYECXmn0W7VSgoK8m2dAVR73mQDeo5Qsdnt5tSt//yT//X11+Y2jv+YHQHpmWcIRwCQl2FIp09LJ05INpvr14K+d/feqVP5yy1IXJzr0Li2bc0hcwBQgRGOUH5ycqSDB/OHnqQk1++zsz0v0zCkLVukiRPNgNSsme/qDwBlITe3ZIHG8X1Oju/rarWavfrt25uTKABAJcOwOvhGZqaUnJw/7OR9HThQ+DStBfH3l2JjzQf/FfYUdEm64AJz6N2AAea4dh78B6CsOHprShJo3PXW+FKNGlJEhPkKD8//vePr5Mnm3/a8lxAWizlMbtOmsqsvAHjAm2xAOIL30tMLDjyO1+HDxSs7KEhq0KDgV/36Up06Zz6ddHfPUVyctH9//rLPPdcMSQMGSJ06ccMvUNWVZMIWd701RYUYd9uWRW+NZP5NdASZgoKNu5CT9/uaNc0PnzxR0N/fr76S+vf37bkCgJcIR4Sj4rPZCg89//wjpaYWr+waNczgcnbYybscHe1d785XX5n3GO3YITVtal789O9vLn/9tbl+3br8+9WtK/XrZ14oXXGFFBBQvHMCSoLZFr1jt5thw/HKznZdzvve4sXSI4/kv3i/806pUaOiA09Z99YUFWaKCjkhIWXfM17Q318AqGAIR4Sj/AzDfK5EQYHH0ROUlla88mvVch928r7Cw8tnWNu+fWeC0o8/5r+BuFYtqW9f86L06qvNiwzA10o62+LZQcGTwFBZ3itom4r231Xe3prCemQK+96b3hoAQLEQjqpbOLLbzWFshU1s8M8/hT99vDC1axc91K1GjdI9J185dEj65hvzwvSHH/JP9lCjhtSzp3lx2rMnMyvBNzIypBYtpL/+yr/OMbS0qABRnPv1cEZoqPfDzs7+vjx6awAAXiMcVaVwlJNjTlxQ2MQGSUnFG9dusZizCRUWfGJjq+4zKI4flxYuNIPS99+bN07nFRho9iQNHCj16SPFxJRLNVEFZGZKv/wirVghrVwprVljvldZ+fmZQ1H9/V1f7t4r6H1fvzdmjNlrfPaEAS1aSBs30lsDANUI4agihaPC7inIO6NbQa+DB4s/o5u7IW5536tbl3ttHE6dMu9R+OoracEC896DvKxWqWtX82fXr5/ZjkBBHGFo5cozYcjTntuICKl374obPKzWyjGZCRMGAAD+h3BUUcLR2f85O8THSydPmg83LY7g4KLv76lTp3JcwFREWVnS8uXmz2/ePPc/p44dz8x8d955ZV5FVDCZmdKvv7r2DBUUhlq0MCcBCQmRJk3i4t2XmDAAACDCUcUJR61bmw8k9UZYWOHD3Bo0kKKiGOdeVnJzpdWrzZvkv/rK7M07W+vWZ4JSixb8bKoDRxhy9Az9/HPBYah5czMMdesmXX65+cGFAxfvAAD4HOGoooSjkBD3F0x+ftKwYQXP6IaKyTCk9evNC9ovv5R27sy/TULCmaDUvj1BqarIzDSnhHf0DHkShq64wgxD55xThhUFAABnIxxVlHDUurX0++88QbwqMgwpMdEMSl995f7n2aCB2QswcKDUubN5rwYqh6ys/D1DZ0/Y4XDBBWfCUNeuhCEAACoYwlFFCUfcEFx97N595llKa9bkX1+7tnT99WaPUvfuVXcGwMoqKyt/zxBhCACAKoFwVFHCkcQ9BdVRcrI5kcNXX5kX2rm5ruvDw83ZyAYMkHr0qDzPiKpKHGHI0TO0enXBYahZM9cwVLdu2dUTAACUGOGoIoUjVG9HjphTg3/1lbRkiXlRnldIiBmQBgwwA1NkZLlUs8rLyjLvF3P0DBGGAACoNghHhCNURDab+bDZr74yHz576pTren9/6corzaB0/fUM1yoJRxjK2zOUnu5+26ZNXcNQvXplV08AAOBzhCPCESq606elpUvNoPTNN1Jqqut6i8WcxMEx813DhuVTz8qCMAQAAApAOCIcoTLJzpZWrTKD0tdfSwcP5t+mXbszQalp07KvY0WTne0ahn76qeAwdP75rmEoNrbs6gkAAMod4YhwhMrKbpfWrj3zLKW9e/Nv07z5maDUpk31eJbS2WFo9er8wxIdEhLOPHSVMAQAQLVHOCIcoSowDPP5SY5nKSUm5t8mPv5MUOrY0XzAcFWQnS1t2ODaM1RUGHL0DNWvX3b1BAAAFR7hiHCEqmj79jPPUlq/Pv/6unXNaeIHDDBDQkBA2dexuLwJQ02auPYMEYYAAEAhCEeEI1R1f/99Jij99JPZy5RXrVpS375mULrmGik4uHzqWZDsbOm331zD0MmT7rd1hCFHz1CDBmVXTwAAUOkRjghHqE4OHZLmzzeD0g8/SDk5rutr1JB69TKDUs+eUs2aZV/HnJz8PUMFhaHzznPtGSIMAQCAEiAcEY5QXaWmms9Q+uoradGi/A86DQqSrr7aDEp9+0rR0b6pR06Oa8/Qjz8WHYYcPUNxcb6pEwAAqJYIR4QjwLxnZ9EiMyh9+635ENq8rFYzjAwcKPXrV7JZ3bwJQ40bu/YMEYYAAIAPEY4IR4CrzExp+XIzKM2bJx05kn+bTp3OzHzXuHHh5eXkSBs3uoahtDT32zrCkKNniAfaAgCAMkQ4IhwBBcvJMZ8T9OWXZlhKSsq/TZs2ZkiqWVOaMUPascPs4enUSTp6tPAwFB/vGoYaNfLhyQAAABSOcEQ4Ajxjt5vTgjseOrtrl/dlEIYAAEAFRjgiHAHeMwxp27YzD53dvNn9dgEB0uDBZ8LQueeWZS0BAAC8QjgiHAElFxQkZWXlfz84OP8seAAAABWUN9nAr4zqBKCyadZMslhc37NYpKZNy6c+AAAAPkY4AuDehAnmUDtHQLJYzOUJE8q3XgAAAD5COALg3oAB5iQNrVqZQ+latTLvRerfv7xrBgAA4BP+5V0BABWY47lHAAAA1QA9RwAAAAAgwhEAAAAASCIcAQAAAIAkwhEAAAAASCIcAQAAAIAkwhEAAAAASCIcAQAAAIAkwhEAAAAASCIcAQAAAIAkwhEAAAAASCIcAQAAAIAkwhEAAAAASCIcAQAAAIAkwhEAAAAASCIcAQAAAIAkwhEAAAAASCIcAQAAAIAkwhEAAAAASCIcAQAAAIAkwhEAAAAASCIcAQAAAIAkwhEAAAAASCIcAQAAAIAkwhEAAAAASCIcAQAAAIAkwhEAAAAASCIcAQAAAIAkwhEAAAAASCIcAQAAAIAkwhEAAAAASCIcAQAAAIAkwhEAAAAASCIcAQAAAICkYoSjI0eOKD4+Xnv37nW+N2rUKFksFuerSZMmznVbt25V+/btVatWLY0ZM0aGYTjXrVq1ShdccIFiYmI0ZcoUl+PMnTtXjRo1UmxsrD755JNinBoAAAAAeM6rcHTkyBH17t3bJRhJ0vr167Vw4UKlpqYqNTVVGzdulCRlZmaqT58+atu2rdavX6/ExETNnDlTkpSSkqK+fftq0KBBWrNmjWbPnq0VK1ZIMgPV4MGDNW7cOC1evFjjx4/Xjh07Sn62AAAAAFAAr8LRLbfcoltvvdXlvZycHG3btk2XX365IiMjFRkZqZo1a0qSvv/+e504cUJTpkzReeedp4kTJ+qDDz6QJM2ePVuxsbEaN26cEhISNH78eOe66dOnq1u3bho+fLhatmypkSNHatasWaVxvgAAAADgllfh6P3339eoUaNc3vv9999lt9vVpk0bhYSEqEePHtq3b58kafPmzerYsaNCQ0MlSa1atVJiYqJzXbdu3WSxWCRJHTp00IYNG5zrunfv7jxG3nXuZGZmymazubwAAAAAwBtehaP4+Ph87yUmJqpp06aaNWuWtmzZIn9/f919992SJJvN5rKPxWKR1WpVampqvnXh4eFKTk52u1/ede688MILioiIcL7i4uK8OS0AAAAAkH9JCxg8eLAGDx7sXH7rrbcUHx8vm80mf39/BQUFuWwfHBys9PT0fOsc70sqdJ07jz/+uB5++GHnss1mIyABAAAA8EqJw9HZ6tSpI7vdrgMHDigqKkpbt251WZ+WlqbAwEBFRUUpJSUl3/uSCl3nTlBQUL4QBgAAAADeKPFzjsaMGaM5c+Y4l9esWSM/Pz/FxcWpffv2WrNmjXPdnj17lJmZqaioqHzrNm7cqPr160tSoesAAAAAwBdKHI5at26tsWPH6ocfftCSJUt07733asiQIQoNDdXll18um82mGTNmSJImTpyoq666SlarVX379tXq1au1bNkyZWdn6+WXX9a1114rSRo4cKA+/fRT/f777zp58qSmTp3qXAcAAAAAvlDiYXW33Xabtm3bpoEDB8pqteq2227TxIkTzcL9/TV9+nQNGjRIY8aMkZ+fn1auXClJiomJ0auvvqqePXsqLCxMkZGRzmcgtW7dWqNHj1a7du0UHByshIQE3X///SWtKgAAAAAUyGIYhuHrgxw8eFAbNmxQx44dFR0d7bJuz5492r59u7p06aKwsDCXdYmJiUpKSlLXrl0LvefobDabTRERETpx4oTCw8NL5RwAAAAAVD7eZIMyCUdljXAEAAAAQPIuG5T4niMAAAAAqAoIRwAAAAAgwhEAAAAASCIcAQAAAIAkwhEAAAAASCIcAQAAAIAkwhEAAAAASCIcAQAAAIAkwhEAAAAASCIcAQAAAIAkwhEAAAAASCIcAQAAAIAkwhEAAAAASCIcAQAAAIAkwhEAAAAASCIcAQAAAIAkwhEAAAAASCIcAQAAAIAkwhEAAAAASCIcAQAAAIAkwhEAAAAASCIcAQAAAIAkwhEAAAAASCIcAQAAAIAkwhEAAAAASCIcAQAAAIAkwhEAAAAASCIcAQAAAIAkwhEAAAAASCIcAQAAAIAkwhEAAAAASCIcAQAAAIAkwhEAAAAASCIcAQAAAIAkwhEAAAAASCIcAQAAAIAkwhEAAAAASCIcAQAAAIAkwhEAAAAASCIcAQAAAIAkwhEAAAAASCIcAQAAAIAkwhEAAAAASCIcAQAAAIAkwhEAAAAASCIcAQAAAIAkwhEAAAAASCIcAQAAAIAkwhEAAAAASCIcAQAAAIAkwhEAAAAASCIcAQAAAIAkwhEAAAAASCIcAQAAAIAkwhEAAAAASCIcAQAAAIAkwhEAAAAASCIcAQAAAIAkwhEAAAAASCIcAQAAAIAkwhEAAAAASCIcAQAAAIAkwhEAAAAASCIcAQAAAIAkwhEAAAAASCIcAQAAAIAkwhEAAAAASCIcAQAAAIAkwhEAAAAASCIcAQAAAIAkwhEAAAAASCIcAQAAAIAkwhEAAAAASCIcAQAAAIAkwhEAAAAASCIcAQAAAIAkwhEAAAAASCIcAQAAAICkYoSjI0eOKD4+Xnv37nW+t3XrVrVv3161atXSmDFjZBiGc92qVat0wQUXKCYmRlOmTHEpa+7cuWrUqJFiY2P1ySefuKybNm2azjnnHDVu3FjLly/3tpoAAAAA4BWvwtGRI0fUu3dvl2CUmZmpPn36qG3btlq/fr0SExM1c+ZMSVJKSor69u2rQYMGac2aNZo9e7ZWrFghyQxUgwcP1rhx47R48WKNHz9eO3bskCQtXrxYjzzyiN577z19/PHHGj58uI4ePVo6ZwwAAAAAbngVjm655RbdeuutLu99//33OnHihKZMmaLzzjtPEydO1AcffCBJmj17tmJjYzVu3DglJCRo/PjxznXTp09Xt27dNHz4cLVs2VIjR47UrFmzJElvv/227rjjDl1//fW69NJLdf311+vrr78ujfMFAAAAALe8Ckfvv/++Ro0a5fLe5s2b1bFjR4WGhkqSWrVqpcTEROe6bt26yWKxSJI6dOigDRs2ONd1797dWY6n69zJzMyUzWZzeQEAAACAN7wKR/Hx8fnes9lsLu9bLBZZrValpqbmWxceHq7k5GS3+3m6zp0XXnhBERERzldcXJw3pwUAAAAAJZ+tzt/fX0FBQS7vBQcHKz09Pd86x/vu9vN0nTuPP/64Tpw44Xzt37+/pKcFAAAAoJrxL2kBUVFR2rp1q8t7aWlpCgwMVFRUlFJSUvK979ivOOvcCQoKyhfQAAAAAMAbJe45at++vdasWeNc3rNnjzIzMxUVFZVv3caNG1W/fn23+3m6DgAAAAB8ocTh6PLLL5fNZtOMGTMkSRMnTtRVV10lq9Wqvn37avXq1Vq2bJmys7P18ssv69prr5UkDRw4UJ9++ql+//13nTx5UlOnTnWuu+GGG/TWW28pKSlJhw4d0gcffOBcBwAAAAC+UOJhdf7+/po+fboGDRqkMWPGyM/PTytXrpQkxcTE6NVXX1XPnj0VFhamyMhI5zOQWrdurdGjR6tdu3YKDg5WQkKC7r//fklSnz599MUXXyghIUGSdOWVV2rAgAElrSoAAAAAFMhiGIZRGgUdPHhQGzZsUMeOHRUdHe2ybs+ePdq+fbu6dOmisLAwl3WJiYlKSkpS165d891XtG7dOp06dUpdu3Z1TgfuCZvNpoiICJ04cULh4eHFPykAAAAAlZo32aDUwlFFQjgCAAAAIHmXDUp8zxEAAAAAVAWEIwAAAAAQ4QgAAAAAJBGOAAAAAEAS4QgAAAAAJBGOAAAAAEAS4QgAAAAAJBGOAAAAAEAS4QgAAAAAJBGOAAAAAEAS4QgAAAAAJBGOAAAAAEAS4QgAAAAAJBGOAAAAAEAS4QgAAAAAJBGOAAAAAEAS4QgAAAAAJBGOAAAAAEAS4QgAAAAAJBGOAAAAAEAS4QgAAAAAJBGOAAAAAEAS4QgAAAAAJBGOAAAAAEAS4QgAAAAAJBGOAAAAAEAS4QgAAAAAJBGOAAAAAEAS4QgAAAAAJBGOAAAAAEAS4QgAAAAAJBGOAAAAAEAS4QgAAAAAJBGOAAAAAEAS4QgAAAAAJBGOAAAAAEAS4QgAAAAAJBGOAAAAAEAS4QgAAAAAJBGOAAAAAEAS4QgAAAAAJBGOAAAAAEAS4QgAAAAAJBGOAAAAAEAS4QgAAAAAJBGOAAAAAEAS4QgAAAAAJBGOAAAAAEAS4QgAAAAAJBGOAAAAAEAS4QgAAAAAJBGOAAAAAEAS4QgAAAAAJBGOAAAAAEAS4QgAAAAAJBGOAAAAAEAS4QgAAAAAJBGOAAAAAEAS4QgAAAAAJBGOAAAAAEAS4QgAAAAAJBGOAAAAAEAS4QgAAAAAJBGOAAAAAEAS4QgAAAAAJBGOAAAAAEAS4QgAAAAAJBGOAAAAAEAS4QgAAAAAJBGOAAAAAEAS4QgAAAAAJBGOAAAAAEAS4QgAAAAAJBGOAAAAAEAS4QgAAAAAJBGOAAAAAEAS4QgAAAAAJBGOAAAAAEBSKYajUaNGyWKxOF9NmjSRJG3dulXt27dXrVq1NGbMGBmG4dxn1apVuuCCCxQTE6MpU6a4lDd37lw1atRIsbGx+uSTT0qrmgAAAADgVqmFo/Xr12vhwoVKTU1VamqqNm7cqMzMTPXp00dt27bV+vXrlZiYqJkzZ0qSUlJS1LdvXw0aNEhr1qzR7NmztWLFCklmoBo8eLDGjRunxYsXa/z48dqxY0dpVRUAAAAA8rEYebtyiiknJ0fR0dFKSkpSWFiY8/158+bprrvu0j///KPQ0FBt3rxZDzzwgH766Se99tprevfdd5WYmCiLxaL58+friy++0Mcff6wHH3xQ27dv16JFiyRJr7/+ulJSUvTcc895VB+bzaaIiAidOHFC4eHhJT09AAAAAJWUN9mgVHqOfv/9d9ntdrVp00YhISHq0aOH9u3bp82bN6tjx44KDQ2VJLVq1UqJiYmSpM2bN6tbt26yWCySpA4dOmjDhg3Odd27d3eWn3cdAAAAAPhCqYSjxMRENW3aVLNmzdKWLVvk7++vu+++WzabTfHx8c7tLBaLrFarUlNT860LDw9XcnKyJBW6zp3MzEzZbDaXFwAAAAB4o1TC0eDBg7V+/Xp16tRJCQkJeuutt7R06VLZ7XYFBQW5bBscHKz09HT5+/u7rHO8L6nQde688MILioiIcL7i4uJK47QAAAAAVCM+mcq7Tp06stvtqlu3rlJSUlzWpaWlKTAwUFFRUS7rHO9LKnSdO48//rhOnDjhfO3fv7+UzwgAAABAVVcq4WjMmDGaM2eOc3nNmjXy8/NTy5YttWbNGuf7e/bsUWZmpqKiotS+fXuXdRs3blT9+vUlqdB17gQFBSk8PNzlBQAAAADeKJVw1Lp1a40dO1Y//PCDlixZonvvvVdDhgzRNddcI5vNphkzZkiSJk6cqKuuukpWq1V9+/bV6tWrtWzZMmVnZ+vll1/WtddeK0kaOHCgPv30U/3+++86efKkpk6d6lwHAAAAAL7gXxqF3Hbbbdq2bZsGDhwoq9Wq2267TRMnTpS/v7+mT5+uQYMGacyYMfLz89PKlSslSTExMXr11VfVs2dPhYWFKTIy0vkMpNatW2v06NFq166dgoODlZCQoPvvv780qgoAAAAAbpXKc46KcvDgQW3YsEEdO3ZUdHS0y7o9e/Zo+/bt6tKli8szkiRzFrykpCR17dq10HuOzsZzjgAAAABI3mWDMglHZY1wBAAAAEAqh4fAAgAAAEBlRzgCAAAAABGOAAAAAEAS4QgAAAAAJBGOAAAAAEAS4QgAAAAAJBGOAAAAAEAS4QgAAAAAJBGOAAAAAEAS4QgAAAAAJBGOAAAAAEAS4QgAAAAAJBGOAAAAAEAS4QgAAAAAJBGOAAAAAEAS4QgAAAAAJBGOAAAAAEAS4QgAAAAAJBGOAAAAAEAS4QgAAAAAJBGOAAAAAEAS4QgAAAAAJBGOAAAAAEAS4QgAAAAAJBGOAAAAAEAS4QgAAAAAJBGOAAAAAEAS4QgAAAAAJBGOAAAAAEAS4QgAAAAAJBGOAAAAAEAS4QgAAAAAJBGOAAAAAEAS4QgAAAAAJBGOAAAAAEAS4QgAAAAAJBGOAAAAAEAS4QgAAAAAJBGOAAAAAEAS4QgAAAAAJBGOAAAAAEAS4QgAAAAAJBGOAAAAAEAS4QgAAAAAJBGOAAAAAEAS4QgAAADV0LK/lqn5tOZa9tey8q5KlVRZ29diGIZR3pUobTabTRERETpx4oTCw8PLuzoAAACoIAzDkC3Tps4zOmvr4a1qHtNc/+n3H1ksFhlyvSyOColS41qNnctH049qd+puSVLLOi0VEhDiXLfp4CZl5GTkO1a+48v9pfdFdS9yKW9D8gZl5GQoJjRGTWOaOt8/fOqwdhzZ4VGZ7o5fp0YdXVD7AufyoZOHlJiSKEm6pMElCg0Ida5bs3+N0rPTizzW2ccxDEP/WvQv/Xn0T7WPba9fhv8ii8Xito5lwZtsQDgCAABApWcYhjJzMxXsH+x8b13SOs3+fbYOnDygA2kHdODkASWnJee74C/IoAsHac7AOc7lOb/P0eCvBkuSdozcofOjz3euO/+N87Xz2M5i17+g8gqrQ3GU5Tk5LBq8SNc2ubbE5RSXN9nAv4zqBAAAAHjNbth1JP2IM9wcSDugARcMUERwhHObLjO6aF3SOt3Y4kbN6j/L+f6uY7v0+i+vl0e18T9Wi1XjVozTNeddU669R54iHAEAAKDM5dhzdPjUYR1IM3tz8vbuOL5PTkvWoVOHlGPPcdm35Tkt1S62nXM5OzdbmbmZOpB2wGW7ejXrqUZADdWrWU/1wuoptmasMnMyNW/HvHz1efqKp3VxvYtd3outGeuy3LVRVy28daEkqX7N+i7rpved7rZHyqL8gcBdSDi7vBnXz1B6drrqhtV1eb97fHctuz3/fTwFBY+zj1+nRh2X5Svjr9TKO1ZKkhqEN3BZN3vA7HxDBQs6luM4vyT9on8v+bfz/VwjV+uS12nJ7iXl2nvkKYbVAQAAoNQdO31Mq/au0oGTB9S3aV+XC+9ec3rp+53fF3ivTFG+ueUb9Wnax7n86ppXlZyWrJbntNSQ1kOc7zsucx0X84Zh6JLpl2hD8gbZZXdu5yc/tY1tW+73xlR2FbV9GVYHAACAUpWene4ytM3Zu3MyWQfSDqhuWF191P8j5/a7ju3SgM8HSDJ7JPKGoyBrUIHBKDok2qWnp15YPedyvZrme2f3cDzU6SG3ZZ19IZ6Vm6V9J/a5XLhLkl127bftV1ZuloL8gzxvFLioCu1LOAIAAIDSMtP07Z/fOictODsEncg8Uej+50ae67JcL6ye8/uzh7sNvGCgWtRu4RqCatbTOTXO8enFc5B/kNaNWKeU9JR86+rUqFPhL9wruqrQvgyrAwAAqGIMw1BqRqoOpB1QTGiMzgk7x7nuzV/f1OfbPpfVz6oVd6xwvr//xH41fK2hV8fx9/NX3bC6qhdWT/G14vXZDZ851+XYc7T54GbVq1lPdWrUkb8fn8mjfDCsroJZ9tcyjfp+lKZeN1VXNb6qvKtT5dC+vkX7+hbt61u0r2/Rvr7lrn3thl1H04/m69lx19OTmZspSZpyzRSXYWd7j+/Vj/t+NIe2GYZz6FneABVkDXIZylbQELeY0Bj5Wfzc1t/fz19tY9v6qnkAn6DnyMccN6atS16X7yFYhmHIkFHgV7thl2EY8vfzd+mGzMzJVHp2ugwZigyOdPmjdPjUYeXacz0q1926hKgEWf2szvISUxKVnZutmNAY1Q8/M4vKoZOHtO/Evnxl2A27R8eOi4hTs5hmzvL2Ht+rbYe3yZCha867RoHWQOe6b//8Vpk5mW7Ly7XnavyK8frr+F9qHNlYz3R7xtkejnbu36y/S/vN2z5PWblZSohK0EX1LnK+v+vYLm0+uNm57Ng/7ywveccuO953vBcfGa+W57R0rt+TukfbUrZJUr5zWrp7qbLt2V6Vn/e9K869QgHWAOf7//37v8qx56hBeAOX5xP8Y/tHu47t8qhMd+dcN6yuBn05yPn7O+/medp7Yq8kqX1se5c6/Jr0a77ZhLxRUHl1w+q6PIDvQNoB7Tm+p9jHKay8sj6nvH8fmsU00/Q+04t1o2pFOid3dSiO0jgnwzA0/Jvh2n50u5pFN9O7vd+V49fd8TdEki6Lu8ylvJV7VyorN0sNIxoW+HfK8V9nYX/v8h7HMAwlRCe4zIS148gOrUteJ0m6sfmNLn+n5vw+Rxk5GS77uzteQe+NaDvC5Vkvb697W6dzTqtN3TbqHt/d+f6G5A1a+tfSfHX15Jh2u12fJ36uncd2Ov9/W/vPWi3cac7k9USXJ1weJvn8f5/3+Nky7jx5+ZMu5T333+d0Ovu0Ojbo6HJj/pr9a7TgzwXFPk6nBp1cyvt5/89asMMsb+zlY1UjsIZz3TOrninROY27fJzb8jo16KS+Tfs6/z7ER8YrOiRaB08d1MGTB73+Nzzm0jF6+eqXncszNs7QjE0zFFszVjP7zXT5Xfkj5Q+dE3aOagXXYmICVBk8BLYChaPFuxarx+wezmXHRac3s7P8q8O/NPW6qc7lqb9M1ehFoyVJRx89qqiQKOe6qJeilJqRWuz6FlReYXUojpHtR+qNnm+4Le/ImCOKDo3OV4fiKqtzqoo/p77n99U3f37jXL6v7X16e8PbkvL/nKJfjtax08eKfayCyjv7d+WNX97QqEWjin2cwsor63M6++9DcVWkc3JXh+Ioz3Ny/Hsq7O9UcZTl372yOqe8Fg1epD+P/snvnhcKO6fe5/f26u9DRFBEgT08reu2VvPazYtdT6CyY1hdBWEYhsatGCeLLGc+RSzGlJWF5dfSzrYFlefrDO3uGQDOdXxyVW7WJq2V1WJVrpErq8Xq/EQYJef4++BoX1Qcnj4rpMTHKcO/e746J8f/b46HPN7e6nZZLVa32/r7+ZfqPSeO8s4e0uVn8VOAX0ABexUt7+gJR3l5e/7zCrQGKshaejeYB1mDFGQNcran4++Dn8VPYYFh6te0n3PigryTGNQNq+vSqwag+Og58qGCPhUedOEgJUQlyGKxyCKL269+Fj/n9xfXu9hlLPemg5u0cu9KWWTR3W3vVkhAiHPdhxs/VFZulkfluvs64IIBLkM7FuxYoGx7ts6rdZ5a123tfN8xZCzvvn4WP4/PKbZmrMuQmYMnD2rfiX2yyKKL6l3k8h/otsPbZDfs+cpcvX+1RiwYka993+/zvjo37OxcPnuo4PYj22U37KoVXEv1ap6ZScfx9G1JLkNiHPIG27xDSxxqh9ZWXEScc/nQyUPab9svSWpTt43LOW1I3qBcI9er8vNu26F+B5dhQD/v/1k59hzF1oxVk6gmzvfzDqsrqsyzz3l98no9sfwJne357s+rXWw7XXHuFS4XDCv2rHAOFSyOgsqLC4/TBbUvcL6/78Q+bT+yvdjHKay8sjynfSf2uf374Ghfb1SUc6pIP6f1yev15PIn85X7wpUvqEP9DpLk/Hty9rC6X/75RTn2HNWrWa/Av1N5h6AW9HdPkst7USFRLg9zPJ5xXCmnUmSxWBQfGe/yd2rfiX3Oe0GKOt7Zx7HIolohtVxCw4kMc5axQGugy/8Z2bnZyrHneFW+VPD/b4sGL6oUD3ms6GhfoHQxrK4ChKOK+hCsqoL29S3a17doX9+ifX2L9vUt2hcofd5kA/fTi6DEPHkIFoqP9vUt2te3aF/fon19i/b1LdoXKF/0HPnQ/hP7C3wI1tlPdob3aF/fon19i/b1LdrXt2hf36J9gdLFsLoKEo4AAAAAlC+G1QEAAACAlwhHAAAAACDCEQAAAABIIhwBAAAAgCTCEQAAAABIIhwBAAAAgCTCEQAAAABIIhwBAAAAgCTCEQAAAABIIhwBAAAAgCTCEQAAAABIIhwBAAAAgCTCEQAAAABIIhwBAAAAgCTJv7wr4AuGYUiSbDZbOdcEAAAAQHlyZAJHRihMlQxHaWlpkqS4uLhyrgkAAACAiiAtLU0RERGFbmMxPIlQlYzdbldycrJq1qwpi8VS3tWRzWZTXFyc9u/fr/Dw8PKuTpVD+/oW7etbtK9v0b6+Rfv6Fu3rW7Svb1Wk9jUMQ2lpaYqNjZWfX+F3FVXJniM/Pz81aNCgvKuRT3h4eLn/clRltK9v0b6+Rfv6Fu3rW7Svb9G+vkX7+lZFad+ieowcmJABAAAAAEQ4AgAAAABJhKMyERQUpAkTJigoKKi8q1Il0b6+Rfv6Fu3rW7Svb9G+vkX7+hbt61uVtX2r5IQMAAAAAOAteo4AAAAAQIQjAAAAAJBEOAIAAAAASYQjAABQQe3bt0/r169XVlZWeVcFQCWya9cubdy4Ubm5uV7vW+XD0fz589W4cWP5+/urTZs2+uOPPyRJW7duVfv27VWrVi2NGTNGZ89LsWvXLkVFRbm899RTT8liseR7rVy50qO6/Pzzz2ratKnX6wry9NNPKyoqSkFBQerfv7/S0tKc61q1auVSx+HDh3tVtqeqa/tKkt1u16WXXqrJkyd7Va43qmP7Dh061G099+7d61X5nqiO7WsYhu677z5FRUUpMjJSQ4cO1enTp70q21PVsX2zs7M1ZswYNWzYUPXq1dP48eOVk5PjVdneqMpt/PDDD+viiy/Wrbfeqvj4eG3fvt25bu7cuWrUqJFiY2P1ySefeFWuNypD+xb1f1VBimrDuXPnqlu3bh6VVVzVsX1zc3N13333KTw8XKGhoRoxYoTP/kZUx/a12+268cYbdfnll6tfv3668MILdfjwYY/KdDKqsF27dhm1atUyPvvsM+PgwYPGjTfeaFx66aVGRkaGce655xr33HOPsWvXLqNnz57Ghx9+6Nxv9+7dRkJCgnF285w+fdpITU11vjZt2mTUrl3bOH78eJF1Wb9+vVGnTh2jUaNGXq0ryMcff2wkJCQYv/zyi7Fz506jadOmxhNPPGEYhmGcOnXKCA0NNQ4fPuysa3p6usdle6q6tq/DtGnTjObNmxtZWVkel+uN6tq+p06dcqnnd999ZyQkJBg5OTkel++J6tq+//nPf4xu3boZe/fuNbZs2WK0a9fOGDdunMdle6q6tu+TTz5ptGjRwti2bZvx22+/GY0bNzbGjh3rcdneqMptvGLFCiMhIcE4ceKEYRiGMXToUOOOO+4wDMMwfv/9dyMwMNB4//33jS1bthhNmjQxtm/f7nHZnqoM7evJ/1XuFNWGixYtMkJDQ42uXbsWWVZxVdf2fe6554xLLrnE2LZtm7Fx40ajdu3axnvvvedBi3mnurbvjBkzjM6dOxtZWVlGbm6u0b17d2PChAlFN1geVTocLViwwHj33Xedy8uXLzdCQkKMr7/+2qhVq5Zx6tQpwzAMY9OmTcZll13m3K558+bGK6+8ku8X42wjRowwnn/++SLrcfLkSaNhw4bGM888k+8Xo7B1hXnhhReMn3/+2bk8fvx447rrrjMMwzB++ukno2PHjh6XVVzVtX0NwzCSkpKMiIgI44cffvC4TG9V5/bN6+qrrzZmz57tcdmeqq7t+8ADDxjTpk1zrnvuueeMQYMGeVy2p6pr+8bFxRlz5851rps2bZrRsmVLj8v2RlVu459//tlYuXKlc/n11183evfubRiGYYwePdq49tprnetee+0148knn/S4bE9Vhvb15m9pXoW14c6dO40mTZoYY8aM8Wk4qq7t++CDDxq7d+92rhsyZIhx3333FVmmt6pr+3733XfGxo0bneseeughY+TIkUWWmVeVDkdne/vtt41WrVoZTz31lEvj2+12o1atWs7lv/76y9izZ0+hvxhJSUlGTEyMkZaWVuRxMzMzjX/++cdYsWJFvl+MwtZ54+abbzZGjRplGIZhTJkyxWjQoIERExNjREREGPfee6+RkZFR7LI9VV3a1zAM48YbbzRatWplzJw501i9enWxy/VGdWpfh19//dVo0qSJkZubW+yyPVVd2vett94yOnXqZBw8eNDYu3evceGFF7p8augr1aV9Q0JCjF9//dW57p133jHatGlT7LK9UVXbOCUlxWjdurXxwQcfGIZhGFdccYXx0ksvOdf//PPPRo8ePYpVtjcqYvueraC/pWcrrA2PHTtmpKamGjNmzPBpODpbdWnfs11yySXGlClTiiyzpKpj++7Zs8do0KCBsWzZsiLLzKvK33PkkJWVpcmTJ+vee++VzWZTfHy8c53FYpHValVqaqokuawryDvvvKNBgwYpLCxMkhQTE6PIyMh8r02bNikwMFD169d3W05h6worM68///xTX3/9te6++25J0o4dO9S5c2f99NNPWrx4sZYuXapXX321yHMqierUvmvWrNEXX3yhBg0aaPfu3brjjjs0cuTIIs+pJKpT++b1xhtv6L777pOfn2//VFWn9h0+fLhOnjypunXr6txzz1V8fLzuuOOOIs+pJKpT+1588cWaP3++JPPeglmzZunqq68u8pxKqqq28fvvv6+GDRuqbt26uuuuuyQp3/mFh4crOTm5yHMqiYravnmd/btYWJmFtWGtWrUUGRnpcduUhurUvnmtWLFCW7du1W233Vbk8UuiOrbv+PHjdf7556tXr1668sori26kPPy92roSmzBhgmrUqKHhw4dr7NixCgoKclkfHBys9PR01apVq8iycnNz9f777+uHH35wvrdhw4Z8N7RJUmxsbLHr7EmZdrtdd911l4YPH64WLVpIMn9p8xo/frymTp2qxx57rNh1KUp1at/3339fl1xyib799ltZLBaNGDFCjRo10r/+9S+vbzj2VHVqX4djx45p/vz5ev3114tdB09Vp/Z9/fXXFRkZqb///lsWi0X33HOPxowZ49OJRapT+06bNk29e/fWr7/+qt27d2vfvn2aNWtWsevhqaraxkOGDFG9evV033336c0339TIkSPl7+/vcn6Oc/Olit6+7n4XCyuzPNqwMNWxfU+dOqURI0ZowoQJql27tkf1KK7q2L6PPvqomjVrpgceeEC9evVSnz59PKqLVE3C0fLlyzVt2jStXbtWAQEBioqK0tatW122SUtLU2BgoEflrVixQtHR0WrevLnzvUaNGpVqnT0t89lnn9WxY8f0yiuvFLhNnTp1lJSUVJpVc1Hd2veff/5Rz549ZbFYJElxcXGqXbu2du/e7ZNwVN3a1+Grr75Sly5dPPpjXRLVrX1nz56tZ555Rg0bNpQkvfDCC+ratavPwlF1a9/WrVtr79692r59u26//XbdeeedHn0SWxJVuY2DgoLUu3dvpaSkaOrUqRo5cqSioqKUkpLi3MabcyuOytC+7n4XCyuzrNuwMNW1fUeOHKmGDRvq3//+d4nqVpTq2r5hYWG69dZbtWPHDn344YdehaMqP6xuz549GjRokKZNm+b8QbZv315r1qxx2SYzMzPftIUF+fzzzzVgwACf1NcbCxYs0JQpU/Tll18qNDTU+X6nTp20f/9+5/KaNWt88h+bVD3bt0GDBi5TH588eVLHjh3zqNvYW9WxfR3Kop7VsX3tdrvLtKYHDx4s1nMgPFEd21eSrFar0tPTtWPHDj311FM+rUdVbePXX39dc+bMcS4HBgbKarVKyn9+Gzdu9MnfX6lytG9Rf0vdKcs2LEx1bd+33npLS5Ys0SeffOLTYePVsX3/7//+TytWrHCuy/u3w2Ne3aFUyaSnpxvNmzc3RowYYaSlpTlfWVlZRu3atZ03IQ8fPtw5C45DYTejxcXFFWuWssJuRvP2ZtXExESjRo0axn/+8x/neTlmHhk2bJhx3XXXGWvXrjVmzpxp1KhRw5g5c6bX9S1KdW3fJUuWGNHR0cayZcuMvXv3Grfffrtx4YUXGna73es6F6a6tq9hmOceGBjoMqNPaauu7fvAAw8YTZo0MWbMmGG8++67RuPGjY1bb73V6/oWpbq2r0OPHj18MkV6XlW5jb/55hujdu3axvLly43t27cbrVu3Nl588UXDMMzZtWrUqGFs2bLFSEtLM9q0aWNMmjTJ6/oWpTK0rye/i+540oa+npChurbv8uXLjaCgIGPp0qXOMn3xuJXq2r5vvPGGkZCQYKxbt8747bffjLi4OOPTTz/1qq5VOhzNmzfPkJTvtWfPHmP+/PlGaGioER0dbdSuXdvYtm2by74F/WLs2rXLsFqtHs3QcbbS/I/jwQcfzHdejv1TU1ONfv36GSEhIUajRo2Mt956y+u6eqK6tq9hGMb06dONhIQEIzg42OjYsaNPnrFRndt32bJlxjnnnON1Hb1RXds3NTXVuP32243atWsbwcHBxvXXX2+kpKR4Xd+iVNf2NQzDWLlypVG3bt1i1dMbVbmNDcMwJk+ebNSrV8+IiYkxHnvsMZdZK5944gkjMDDQCA8PN9q2beuTi8vK0L5F/S4Wpqg29HU4qq7t269fv3xl+qKdq2v72u12Y8yYMUZ0dLQRGxtbrJkALYbh5m6nauLgwYPasGGDOnbsqOjo6PKuTpVD+/oW7etbtK9v0b6+V9XbODExUUlJSeratWu53C9TFdq3vNuwMLSvb9G+BavW4QgAAAAAHKr8hAwAAAAA4AnCEQAAAACIcAQAAAAAkghHAAAAACCJcAQAAAAAkghHAAAAACCJcAQAAAAAkghHAAAAACCJcAQAAAAAkqT/B2G5pGr3P/z0AAAAAElFTkSuQmCC",
"text/plain": [
"<Figure size 1000x600 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"\n",
"pv_daily = data[data['behavior_type'] == 'pv'].groupby('date')['user_id'].count()\n",
"pv_daily = pv_daily.reset_index().rename(columns={'user_id': 'pv'})\n",
"uv_daily = data.groupby('date')['user_id'].apply(lambda x: x.drop_duplicates().count())\n",
"uv_daily = uv_daily.reset_index().rename(columns={'user_id': 'uv'})\n",
"x = pv_daily['date']\n",
"y1 = pv_daily['pv']\n",
"y2 = uv_daily['uv']\n",
"fig = plt.figure(figsize=(10, 6))\n",
"matplotlib.rcParams['font.sans-serif'] = ['SimHei'] \n",
"matplotlib.rcParams['font.family']='sans-serif'\n",
"plt.subplot(1, 1, 1)\n",
"plt.plot(x, y1, label='访问量', linewidth=1.8, color='r', marker='o', markersize=4)\n",
"plt.plot(x, y2, label='用户量', linewidth=1.8, color='g', linestyle='-.', marker='^', markersize=4)\n",
"plt.legend(loc='best')\n",
"plt.title(\"某时段用户每天活跃量\", fontsize=24)\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "85567ce1",
"metadata": {
"pycharm": {
"name": "#%%\n"
}
},
"outputs": [
{
"data": {
"text/plain": [
"{'浏览次数': user_id\n",
" user_id \n",
" 1 55\n",
" 100 84\n",
" 1000 67\n",
" 10001 21\n",
" 10008 41\n",
" ... ...\n",
" 1008883 395\n",
" 1008891 69\n",
" 1008899 86\n",
" 1008904 130\n",
" 1008905 7\n",
" \n",
" [1967 rows x 1 columns],\n",
" '加购次数': user_id\n",
" 1000 2\n",
" 10008 12\n",
" 10009 11\n",
" 10020 2\n",
" 10021 17\n",
" ..\n",
" 1008882 13\n",
" 1008883 10\n",
" 1008891 3\n",
" 1008899 1\n",
" 1008904 20\n",
" Name: behavior_type, Length: 1466, dtype: int64,\n",
" '收藏次数': user_id\n",
" 100 6\n",
" 1000 12\n",
" 10013 38\n",
" 10020 1\n",
" 10024 2\n",
" ..\n",
" 1008829 5\n",
" 1008830 4\n",
" 1008849 2\n",
" 1008860 1\n",
" 1008882 1\n",
" Name: behavior_type, Length: 725, dtype: int64,\n",
" '购买次数': user_id\n",
" 100 8\n",
" 10008 3\n",
" 10009 10\n",
" 10020 1\n",
" 10021 1\n",
" ..\n",
" 1008882 2\n",
" 1008883 3\n",
" 1008891 5\n",
" 1008899 1\n",
" 1008904 7\n",
" Name: behavior_type, Length: 1369, dtype: int64}"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from pandas import DataFrame\n",
"import pandas as pd\n",
"user = {}\n",
"user['浏览次数'] = data[data['behavior_type'] == 'pv'].groupby('user_id').agg({'user_id':'count'})\n",
"user['加购次数'] = data[data['behavior_type'] == 'cart'].groupby('user_id')['behavior_type'].count()\n",
"user['收藏次数'] = data[data['behavior_type'] == 'fav'].groupby('user_id')['behavior_type'].count()\n",
"user['购买次数'] = data[data['behavior_type'] == 'buy'].groupby('user_id')['behavior_type'].count()\n",
"# data_1 = DataFrame(user,index=[0])\n",
"# data_1\n",
"user"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "afaa636a",
"metadata": {
"pycharm": {
"name": "#%%\n"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"user_id 1973\n",
"item_id 117031\n",
"category_id 3980\n",
"dtype: int64 \n",
" 用户行为数: 199908\n"
]
}
],
"source": [
"base_count =data[['user_id','item_id','category_id']].nunique()\n",
"behaviour_count = data['behavior_type'].count()\n",
"print(base_count,'\\n','用户行为数:',behaviour_count)\n"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "40768d9f",
"metadata": {
"pycharm": {
"name": "#%%\n"
}
},
"outputs": [
{
"data": {
"text/plain": [
"np.float64(91.09934110491638)"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"behaviour_group = data.groupby(['behavior_type']).count()\n",
"behaviour_group # 将用户每种行为分类\n",
"PV = behaviour_group[3:4]['user_id'].values[0]\n",
"UV = base_count[0:1].values[0]\n",
"PV/UV # 计算访问量与点击量次数比"
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "6c4b9afb",
"metadata": {
"pycharm": {
"name": "#%%\n"
},
"scrolled": false
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA/gAAAJQCAYAAAA648+gAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAACPTUlEQVR4nOzdd2AUZf7H8c/sbiohlRqIEIoISFEIIlKkeHIWLNgQTlGBQ/RAUfSQZuFHE2knVjjwUETFggVEUeEUKYJIC3CUgHQCCQkQ0nbn98cmSzaNBJJssnm/7tbszvPMzHd2SPnMMzNrmKZpCgAAAAAAVGgWTxcAAAAAAAAuHwEfAAAAAAAvQMAHAAAAAMALEPABAAAAAPACBHwAAAAAALwAAR8AAAAAAC9AwAcAAAAAwAsQ8AEAAAAA8AIEfAAAKiC73S7TNC9p3sTERKWmppZwReXH/v37PV0CAAAeQcAHAKCY3nrrLb322mvFDtipqamy2+2F9jFNU2lpaRcN4J9++qmuvPJKHT9+vFg1SNJLL72kjh076vz585Kk9PR0ZWRk5OmXnp6ulJSUfJeRczvOnTun+vXr68033yxWHTt27Mh3+qZNmwqd7/fff9d9992n9PT0PG1btmxRo0aN9OOPPxa6DNM09cQTT7jVnJKSorS0NDkcjiJUn79z586pQ4cO+u9//3vRvpmZma73ce7cua7tPnv2rCTpzJkz+vHHHy/6bwYAgGwEfAAAiiE+Pl4vvPCCfv31Vx04cED79+/P97F3715t377dbd7bbrtNNptNhmEU+LBYLPL399fgwYMLrePDDz/UNddco5o1axar/tjYWL3xxht69tlnFRAQIEmaMGGCfH1989Ti5+enbt265VnGypUr1aJFC9dIeVpamg4cOKCgoKAi13Hu3Dk1b95c//nPf9ymZ2Rk6IYbbtDzzz9f4Lw1atTQjz/+qJEjR+Zpa9mypW655RYNHz680AMwhmHIbrfrqaee0urVqyVJjz76qPz9/WW1WvPdN//6179c8+/atUuTJk3Ks9wffvhB69evV1RU1EXfg+eee861n6dOnap169Zp9+7dioqKUlJSkjZs2KDu3btr165dF10WAACSZJiXen4fAACVjGmauv3227V8+XJVqVKl0L52u12pqaluI+NHjhyRaZqyWq2uaQMHDlRgYKBmzpzpWkdaWpoCAgIKDO9bt25V69atCxxptlqtWr9+va699lq36SkpKbr++uvVoEEDff75567pCQkJOnv2rHx8fGQYhlsdVqs1T1iNj49Xly5dlJqaql9++UWGYSgyMlI//fSTbrzxxkLfl2wbNmxQ+/btdeLECYWHh7um//jjj+rRo4d27dqlxo0bFzj/559/rt69e2vlypVq06aN/Pz8ZLPZJEl//PGHZs2apRkzZig4OFiS88CB3W6Xv7+/axnnz5/XVVddpeuvv16LFi3SsWPHlJ6eLpvNJovFfQykbt26mj17tv7+979LkhYsWKCHHnpIH374oR544AFXv/vvv1+GYWjRokUXfQ9OnDihVq1aadGiRfrHP/6hp556Shs2bJDD4dBbb72lV199VfPmzVNsbGwR3lEAACSbpwsAAKCiGDFihJYvX65ly5apR48exZ4/MjIyzzQ/Pz8FBASoVq1aRVqGaZp6+umndc0112jv3r3atGmTQkNDJUnJycnq2LGjHnjggTzhXpIGDBigQ4cOafny5W7Tw8PD3UL2xVSvXl3ff/+9YmJiNHbsWD311FOSVKSzCVJSUnTkyBH9/PPPat68uRISEpSQkKDQ0FBVq1ZN7733niIjI/XDDz/ohx9+cM130003qWHDhq7Xd911l6ZPn66WLVuqe/fuWrduXZ51zZs3z+31M888o6lTp7peBwQE6P3339c111wjSRfdB76+vq7nf/vb3/Trr79q4MCBuvbaa3XllVcqPj5eX3zxhdLT0/XRRx/lmb9JkybauXOnJOfp9x988IEGDx6sHTt26PTp01q1apWqV68uHx8f/frrr1qxYoW6dOmi06dPu5aRmppa5H8rAIDKh4APAMBFmKapYcOG6fXXX9f8+fM1e/Zs3XTTTYXO889//lMTJ04s8VqmTp2qLVu2aMeOHerfv79efvll/fvf/5bD4dBjjz2m0NBQvfTSS3nmO3r0qL766it98sknCg4OVpcuXTRu3Lh8T8EvTHp6ukzTVGRkpL777js1bNhQa9eulSTVrl37ovP/8ssvuvnmm12vs0fpn3vuOY0aNUqLFy9W3bp1NWfOHFefLVu2aNGiRW4BX5KGDRsmSfrkk0+UmZkpX19f1atXTx9//LE6dOjg6pd9NkL2JQSpqalq1KiRJkyYoIceeqjI2559dkO26dOna9WqVerXr5/WrVun1157TdHR0fr222/zzNupUyfdeeedrtepqan65ptvFBAQoF9//VUJCQmKjY3VFVdcoczMTF1xxRX6+eef9d133+mtt95yzWe1WpWZmVnkmgEAlQsBHwCAizAMQ1dddZXee+89/e1vf9P8+fM1d+5c3X333Xrsscd0991369Zbb3X1f/DBB/OMiMfFxclisbidni85TxO3WCw6dOiQ23SHw6G0tDS309RXrFihkSNHavHixYqIiNCMGTN07bXXqmPHjlqzZo3Wrl2rX3/91XVtfU61a9fW1q1bVb9+fY0ZM0Zr1qyR1WrV0aNHdezYMfn5+eU5LV26cGp769atJUlTpkzRmDFj8n2fwsLC8p3ep08fLVy4UJLzjAVJbtfH9+jRQ35+fnr99dcVFBSkTZs2KTAw0K327NHzL774QrNnz5afn5/8/f21ePHiPJcQhIeHFzrK7evrq8OHD7uCcnx8vM6dO5enX2GXSUiSv7+/5s6dq+TkZB06dEivv/663n33XdWvX1+ffPKJGjRooDZt2mj37t06dOiQbrvtNte81atX14oVKzR37lz9+uuvqlOnjm666SalpKRo+vTpev/992W325WSkqKAgAB9+OGHevHFF7Vly5YC6wEAgIAPAEARDBkyxPU8KSlJkZGRCg0NVdOmTdW/f3/95z//UZ8+fSQ5R7lzB/y//vWvhd4s7ZNPPskzLfdo7Y033qhFixa5RoIbNmyoadOm6bHHHlNAQIB+//131atXr8B11K9fX/v27dPUqVP1j3/8Q126dNHkyZM1btw4BQQEuA4+pKSkKCMjQyEhIUpLS1OVKlV07NgxSc7T/O+44w75+vq6+o8bN047duzQxx9/nGedPXv2VJ06ddy2KT/x8fF6//339dprr7mFe8l5kCHngYEzZ85o3759OnXqVJ7lmKapw4cPa8+ePW7TIyMjXcvNPtCSfUBj6NCh+V4zf/PNN+c7Gp/T9ddfL8n576NVq1au6/H/7//+T9dcc43mzZunr7/+WjVq1HD1lZwfVfjCCy/o008/1fLlyzVgwABVq1ZN77//vp566ilt3bpV6enpOn/+vAICAnT06FHVqFHD9T4AAJAf7qIPAEARpKWluY34Zl/3Pn78eA0bNsztRmjnzp1zhePsj7tbvXq1Tp8+rTNnzrgeR44cka+vr/z9/RUXF+fWlpSUpCNHjrjVYLPZdM8990hy3hhvwoQJeuaZZ9S5c2dVrVpVDzzwgN577z0lJyfnuw2ZmZnq16+fUlNTNWDAAEnS888/r9TUVCUmJurkyZM6efKkhg4dquuuu04nT57UmTNnXOFecl6n3qJFCzVp0kSNGjVSo0aNtG3bNt14442u1zkfiYmJ+Y6mnz171vWw2+2qWbOmlixZoubNm+v22293u4Fgenq66+Z4d911l9auXauRI0e6XRMvOQ9MOBwO9evXT40bN3Z7bN68ucB96+fnp4cfflimaboeDz/8cJ7l58c0TR09elSzZ8/W559/7jqNPzMz03VgIzuw5zy4ERcXp0OHDmn9+vWqWrWqWrVqpWuvvVZffvml6tev77oeP/uj844eParo6OiL1gMAqNwI+AAAFMEzzzzjusv8wYMHdf3117s+Pu21117T+PHjXa/Xrl2re++9V/7+/q4b0EVERCgkJERBQUGux4oVK2Sz2VS9enXNnTvXrS04OFg1atRwqyEtLU1ff/21HnroIdWtW1fffPONFi5cqFWrVul///ufevXqpREjRqhatWpq166dHn/8cbfrtx9//HHXZ8/nvp78Uu3atUtbtmxRr169tGDBAu3bt8/Vlp6eroSEBLcR/GxVq1Z1PVauXClJ6tatm+rXr6/vvvvO7YyGnAE/p9yXFGQf2Ni4caMrqJ84cUJS4fcHKOisAh8fnwLnyfbZZ5+pZcuWOnnypGt/maapAwcO6PDhw5Kc73Xufdm4cWNNmTJFpmlq1KhR2r17txo1aiRJqlatmkaMGKG//vWvWrVqlSRpx44dat68+UXrAQBUbgR8AACKYPz48Tp58qTi4+MlSXv27FF8fLyuueYaLVq0SImJia5H3bp19f333+vEiRMF3mjPNE29+uqruvPOO/Xcc8/p9ddfzzNin1Pfvn0VGhqqhx56SMnJyXrvvff0wQcfqFmzZtq/f78SExP16KOP6pdfftHs2bMVExOjFStWKCkpSZJc13tnfxxfSZk9e7aio6PVsWNHTZo0Sa1bt9aCBQskyTXyn9+nB8THx7senTt3dk2vU6eO7r//ftdnzGffIC+/gJ9b9n0Mcl6mkH0af0RERIHz5fwow5wu9knCpmlq/Pjx6tKli6pXr+6a/vvvv+vs2bNatmxZgTfEW7VqlVq0aKFmzZrp008/1ZYtW3TVVVepQYMGmjRpkiZNmqSbb75Zn3/+uex2u9auXauOHTsWWg8AAAR8AACKIDQ0VBEREa7PsY+Ojla1atX04IMPql+/fnrjjTcUGhqq0NBQnTt3TrVr11b16tULvPHc9OnTtW3bNj3zzDMaNGiQatSooT59+shut+fb//HHH9eXX36p48eP68yZM7rvvvsUHR2d59GkSRMNGjRIw4YN0+7duzVixAhJzhvZff3117rllltK7D3Zu3ev3n33XT333HOy2Wz65Zdf1LlzZz300EN6/vnnXQE/vxH8atWquR65R8oHDBigLVu2KDY2VufPn5ekPNfl5/TRRx/Jbrdr5cqVqlOnjluYT0hIkI+Pj6pWrVrg/Onp6XrvvfdcZ2AYhqH33ntPaWlphW7/Z599pl27dmnatGlu0+fMmaOePXsqLCxM77zzTr7z3nbbbcrMzNSUKVMUExPjulyhQ4cOuv/++yVJt99+u/7880+NGjVKdrtdbdu2LbQeAAC4yR4AAMVw5MgRVa9e3XV6+LPPPqvatWsrODjY1efs2bPy9/dXampqviPPS5Ys0T//+U8NHjzY9Xn18+fPV+fOnfWPf/xDs2fPznMKfc7RW19f3zyf6Z5t//79io6Odt2MLedp7LfccotOnjx5GVt/QWZmph555BFdeeWVGjhwoCTnXfSXLFmiIUOGqFevXjp69Kik/EfwC9OpUyf9/vvvatasmesU+5zvbzbTNDV69Gj9+9//VkxMjN5880316tXLrU9CQkKeGx7m9q9//ct1xkBO+X0aQbbk5GQNGzZMI0aM0BVXXOGavmbNGs2ZM0erV6/WgQMH1L9/f7Vt21bt2rXLs4zz589r0qRJatSokf7zn//IZrPp999/12effSbJeRnDgAEDNHnyZA0fPpwb7AEALoqADwBAMezfv1/Hjh276DXsjRo1Ups2bbRhwwbXNIfD4fqYuU6dOmn69Omutuuvv17vvvuuHnvsMR08eFBvv/12gcG4KNeGF3RdeUkZMmSItmzZovXr17uty2q16u2335Ykvf322woNDc03KO/fv9/1PPtGhNkMw1CrVq0kOe82L+UN+KdOndKJEyf0xRdfaO3atXrvvfd08OBBPf300279jh49etGAX716dbdT7Ivi0UcfleS8SWG23377Tbfffruef/55tWvXTu3atdNnn32mm266SR999JF69uzptoyAgACtXr1a33//vebPn6+ffvpJ1apV0/z58zV48GAFBga6LhO42NkEAABInKIPAECx3HLLLW7X2+d+fPnllwoICNCJEye0dOlS13wrVqzQddddp5EjR2rgwIFavnx5nhHZ/v37a+nSpVq7dq0aNmyoQYMGad26dfnWkZycrP379+d5ZF+HXtD149nTC7u+POcd7HPLyMjQgAEDNGfOHC1YsEBXXnllgX03b96c5/T87GXnvKxg9erVBa5zx44d8vPzy/Neffrpp+rSpYtWr16tbdu26eWXX9bYsWPVuHFjSdKHH36o1157TZMmTdLVV19dYI1FkZmZ6fZ+HThwQKtWrdKECRMUGBio9PR0TZ48WZ06ddLdd9+tV155xdV3/vz5uvHGG3XLLbfoiSeecN3DIVv9+vVVs2ZN/e9//9PTTz+tWbNm6dtvv9WJEyf0wAMP6OOPP9Ybb7yht99+W0888USB9wsAAEBiBB8AgGLx8fFxfUReTikpKbrqqqt08OBBPfzww24jwosWLVKfPn3UuHFjffbZZ7rrrrsKXP7NN9+szZs3a/z48frkk080fPjwPH3S09P17rvv6t133y1wOQWN+Gbf9C2/oPjTTz/pq6++0ieffKImTZrkaY+Li9N9992nP/74Q++9955uv/32PH2+/vprrVq1SqdOndKCBQv097//PU/tkvsBhh49erimS9Kff/6pmTNnug6YdOvWLc96vvrqK4WGhsrPz08///yz7rvvPo0aNcrVvm/fPs2cOVMxMTF5bnTocDgKvNdBbs8995xWrVolh8Phuo6/Xr16+uOPPxQZGan09HS1adNGu3fv1uTJkzVs2DC3+f38/PT555/rxRdf1IQJE3Tu3DnNnz9fCQkJmjFjhj7++GM5HA69+eabrvczMTFR7dq1U8OGDbVmzRpFRUUpPDxc/fv312+//aZVq1YVevkAAKDyMsyL3SIWAAAUybJlyxQWFqb27dvnafvuu+/UrVs32WxFP7Ze0DX8x48fl6+vb4E38CtM9jX6a9eu1XXXXefWlpCQoMaNG6tly5YaN26cbrzxRrf2jIwM9evXTw8//HCBN+v7/fff1aVLF9WrV09/+ctf9OKLL7qdXr9jxw69/fbbmjFjhmvakiVLVK1aNd1www2SnOH/yiuvVJUqVXTzzTfrhRdeUEhISKHb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S5cuOnr0qKpWrarly5dr+vTpatiwoWrXrq0uXbpo5MiRWrZsmeLi4jRjxgw1adKkNLcBAAAAAIBKr8gBv0qVKtq3b58WL16sPXv26MSJExoxYoSuvfZa9enTR8eOHZOPj486deqk+++/X6dPn9bSpUvVtWvX0qwfAAAAAACoGKfof/XVV+rbt6+++eYbff3119q4caPOnj2rs2fP6t///reSkpJks9k0btw4ffbZZ3I4HJo8ebJM0yzN+gEAAAAAgIoR8P39/RUaGqqQkBAFBgZq//792r59u6pXr64dO3aoY8eOstvtOnXqlLZs2aL+/fsrLS1N06dPL836AQAAAACAinGK/k033aQOHTpo2rRpuvPOO3Xw4EEdOXJELVu21J133qnIyEg999xzatCggSIiIjR16lQ1atRI3bt316BBg7iLPgAAAAAApajII/hpaWnq3LmzfvnlFyUmJqpx48b67rvv9PTTT2vr1q26++67FRAQoF9++UWtW7dW9+7d1bJlS1199dV67733SnMbAAAAAACo9Ioc8P38/PTiiy9q2bJlioyMVHh4uK699lq98sormjVrllJTU5WamqoWLVros88+U0hIiCTpvvvuU0RERKltAAAAAAAAkAzzMu+CZ7fblZCQoGrVqiklJUVVqlQpqdrKneTkZIWEhCgpKUnBwcGeLgcAAAAA4OWKk0OLPIJfEKvVqurVq8swjHzDfWpq6uWuAgAAAAAAXMQlBfzjx48Xqd+2bdvUtm1b7d69+1JWAwAAAAAAiuiSAn6dOnXUoUMHTZgwQdu3by+w3/Dhw3Xs2DFOZwcAAAAAoJRdUsB3OByqW7eu3nzzTbVs2VLx8fF5+kycOFErVqzQu+++q5o1a152oQAAAAAAoGC2S51x6tSpuuKKK/THH3+oevXqbm1vvvmmRo8erYkTJ+quu+667CIBAAAAAEDhLjngZ2vdurXreWxsrF566SV98803evPNNzVo0KDLXTwAAAAAACiCy7qL/rfffquGDRuqc+fOatiwoVq0aCE/Pz/FxsYS7gEAAAAAKENFDvhz5szRwoULZbfbXdOqVKmiXr16qVWrVmrWrJlCQkL03Xff6ZNPPnHrBwAAAAAASpdhmqZZlI4PPPCAPv30U0VGRurQoUNav3692rRp49bHbrdr8eLFGjFihJo0aaJPP/3Uq+6gn5yc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gMuXkZHh6RIkSTZPF4Dy648//lD79u31r3/9y9OloBAHDhzQ4sWL9cwzzygjI0M+Pj6eLgn52Lx5szp06KDz58+rWbNmev755z1dEvKxa9cuvf766woPD1fjxo3Vr18/DsaUM3v27NHnn3+u1NRURUVFqX///jIMgwNn5cy+ffu0fft2+fn5qXXr1qpRo4YksZ/KmWPHjqlGjRqyWCzsm3Jq165deuedd1SrVi3FxMToxhtv9HRJyMeXX36p8ePHq2PHjrruuut0//33e6wWRvCRry1btqhDhw566qmnNHDgwDztHOktP5YuXap33nlHkgj35dQff/yhDh06aOTIkVq6dKkSEhIk8X1U3uzYsUMxMTE6deqUYmNj9cknn2jFihWeLgs5/O9//9P111+vP/74Qz/88INmzpypf/zjH5JEMClH4uLi1KpVK3355ZcaO3asxo8frylTpkiS62AMPM80TY0bN05///vf5XA4ZBiGHA6Hp8tCDjt27FCrVq20b98+vffee5o2bZqWLVvm6bKQy3fffacnnnhC3bp1U1JSkj777DPt2LHDY/UQ8JFHSkqK+vXrpz59+mjSpElKT0/Xv/71L82dO9f1Q4Vf0OXHbbfdppo1a+rw4cM6evSoPvroI73zzjtKSkrydGmQtHPnTsXExGjEiBEaPXq0atWqpYULF+q3334jkJQjdrtd06ZN02OPPaaFCxdq1qxZSktL09GjR9368XPPcxwOh9555x316dNHH3zwgb744guNGTNGGzZs0KpVqzxdHnJYv369rr/+er377rv64osvdP/992vNmjV64oknJPE3RHlhGIaOHTumr776So8//rgcDocsFgshv5xwOByaPn26Hn74YX3++edasmSJbDabfvzxR0+XhiymacrhcOjtt9/W4MGDNWnSJI0dO1Y7duzQ7t278/QtKwR85BEYGKg+ffpo3bp1OnjwoDp27Kj33ntPs2fP1vjx4/XYY49JYrSkvAgJCVFcXJwmT56st99+W5MnT9a0adPUqVMnrV27VhKhxBOy3/PvvvtOr732ml588UU5HA61bt1affv21ZYtWyRduOkePMtqtapu3bqSnAc5a9euraCgIC1atEgDBgzQiBEjJBFMPMlisSgtLU1JSUnKzMxUaGioevToodTUVP3++++eLg85nD17VuvXr1d8fLxq1aql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f39t3LhRX331lSIjIz1ceeWR3z5asWJFvnfM79ChgzZv3sz3kgfUqlVL+/fv17lz51S1alVFRETo/fff1yOPPKI333xTs2bN0sMPP6y9e/eqR48eGjFihF544QU1atTI06VXKhkZGVq3bp3i4uIUFhama6+9VlOmTNH58+ddlyJJzu+7bt26adSoURo+fLgHK6588ttHkydPVkpKits+8vf318iRI/XPf/5Tv/76q9q2bevBqiufgr6XUlJSdM8990iSVqxYoeHDh+vWW2/V3LlzNXPmTFWtWrXMamQIFmrdurWsVqt8fX2VkZGhK6+8Utdcc43rs7olacGCBVq/fr2SkpLUpEkT1atXz4MVV04F7afsU7wNw9DIkSNlmqaOHDmi4ODgMv1hAqeC9lPO072zR+uvv/56rV69WqGhoR6qtvIqaD9lX+tosVj04Ycf6vfff1dycrKaNGlCuC9jF9tHOV199dV8L3nIHXfcoauvvlr+/v7at2+fjh49qm7duik1NVUffvihYmNj9frrr+uuu+7Snj17VLVqVa6994D27durY8eO+uijjzRkyBAFBwerTp06euutt/T3v/9dzzzzjOtysuyRfJSti+2j4cOHa9q0aWrZsqWaNWumjz/+WM2aNfN02ZXOxfbTmDFj9Morr6h79+46d+6cwsLCyvwMC0bwoe7du6tv374yDEM+Pj4yDENRUVH66aefXH1++OEHXXfddfrLX/5CuPeQouynZcuWyTAM1alTh3DvIUXZT0uXLpUkVa1a1XVtHcpWUfbTihUr1KZNG3Xt2pVw7wHF+V4KCgrie8lD6tevr44dO8pqtapevXr68MMPNWXKFM2aNUujRo3S5s2bXR/p1ahRI8K9h0RGRqpjx4769ttvtWbNGtf1wNWqVdMjjzyirVu3ui5zgWcUZR8dP35cPXv21IoVKwj3HnKx/fTrr7/q8OHDqlu3rpo0aeKRyycI+JVYzpt6paenyzRN12dyR0ZGKj4+XpLzVNWbb75Z+/fv90SZlV5x9tPtt9/OfvKQ4uynXr16cYMpDynOfurZsyffTx7A91LFkHM/nTx50vUpIVWqVHFdJtGsWTOdP3/eUyVC7vtpyJAhatq0qaZNm6YVK1YoKSlJVqtVPXr00Pbt27Vr1y4PVlp5FXUfxcbGatOmTTIMg/vBeEBR99POnTsVGxvr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27ZNubm5at++vR588EFJ0ocffqhXX3212f89AAASGWfwAQBAizVeuDd3v2HDhqm2tlbt27fX22+/HT3T37dvXz388MN6++23j/v7JiXxTxYAAE6Gw+EAAKDFmnvJfOP9QqFQdAFfUFCguXPnSpI2b96swYMHKzk5WZ7nqaKiQtdee60kad++fad2cAAA4hgLfAAA0GKe56m6ulo//fTTcfepqqo67oGAwsJCjR07VpKUm5sb3e6cU9euXfXVV19JOnSJfsNl/QAA4MRY4AMAgBbzPE+rVq3SBRdccML9zjnnnGNub3iCfoOGM/aRSOTUDAgAQALihjYAANBinuc16yn6x9P4Hvz+/ftHt9fX16uqqkqzZs3SrFmztHTp0lh8OgAAxAXO4AMAgBZzzrV4v7179yoSicg5p+rqalVWVko6tKivqanRrl27VF1drYMHD+qVV16RJB04cOBUjw4AQNxigQ8AAE6bxgv8e+65R8uXL1erVq00efJkTZ48ObrPunXrtGXLFnXr1k0DBgzQypUrJXEPPgAALcECHwAAtFhz75VvvMBfsmSJJGnhwoUaMWKEunTpot9//11fffWVbrzxRklS7969NXz48FM/MAAACYB78AEAQIuFw2G988478jzvuD+KiooUDoebvO7LL7/UxIkTtWbNGknShg0bdNNNN2nZsmVav369vv32W40YMcKPTwkAAPM4gw8AAFosHA5r2LBhWrBgwXH3KSoq0uLFi6Mf79ixQxMmTNDMmTM1evRoSdLQoUOVn5+vuXPnSjp0Bv+aa66Jvqa+vv60zA8AQDxigQ8AAFqsrq5OKSkpysjIOO4+7du3b7JA/+STTzRw4EBNmTKlyX6PPfaYCgoKVFRUpOLiYnmeJ0l6+eWXdf/995/0rfgAAMAhnmvuY3ABAABOk5qaGr377ru6+eabo9t++OEHLVy4UHfccYd69Ojh43QAANjAAh8AAAAAgDjAQ/YAAAAAAIgDLPABAAAAAIgDLPABAAAAAIgDLPABAAAAAIgDLPABAAAAAIgDLPABAAAAAIgDLPABAAAAAIgDLPABAAAAAIgD/wcVfB47dBDA3AAAAABJRU5ErkJggg==",
"text/plain": [
"<Figure size 1200x600 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# 确保您的数据集 'data' 包含 'date_column' 列,并且该列是日期时间格式\n",
"data['date_column'] = pd.to_datetime(data['date'])\n",
"\n",
"# 使用 groupby 方法按 'behavior_type' 分组\n",
"count_by_behav = data.groupby('behavior_type')\n",
"\n",
"plt.figure(figsize=(12,6))\n",
"\n",
"# 遍历每个行为类型的组\n",
"for group_name, group_data in count_by_behav:\n",
" # 设置日期时间列为索引\n",
" group_data = group_data.set_index('date_column')\n",
" \n",
" # 使用 resample 方法按天计数\n",
" count_by_day = group_data.resample('D').count()['behavior_type']\n",
" x = count_by_day.index\n",
" y = count_by_day.values\n",
" \n",
" # 绘制图表,使用日期索引而不是 range(len(x))\n",
" plt.plot(x, y, label=group_name)\n",
"\n",
"# 设置 x 轴刻度标签为日期,并旋转 45 度\n",
"plt.xticks(rotation=45)\n",
"plt.legend(loc='best')\n",
"plt.xlabel('日期', fontsize=12)\n",
"plt.ylabel('行为次数', fontsize=12)\n",
"plt.title('每天各行为的访问次数')\n",
"\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 16,
"id": "083d0a20",
"metadata": {
"pycharm": {
"name": "#%%\n"
}
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAqcAAAIrCAYAAADSlzCnAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABs+UlEQVR4nO3dd3gU5f7+8XuzKSSBhN4SmgEp9gICR8ROEAVBLCCoKKCC0iQoSlURBUGCiigqgoJ4RBQEpYoIygFBRZSiIELoNY2Qtju/P/jtfrNkW8ImGZL367r2Omdnnp35zLPB3JmZ5xmLYRiGAAAAABMIKukCAAAAAAfCKQAAAEyDcAoAAADTIJwCAADANAinAAAAMA3CKQAAAEyDcAoAAADTIJwCAADANAinQB42m03Lli3T8uXLS7qUQktLS9P//vc/bdiwoaRLgRvJycklXYIp2e12TZo0KWD9YxiG3n//ff39998B2Z4nGRkZ+vTTT5WWlua13VtvvaUjR46c9/68PTcnJydHNpvtvPdREDabTUlJScW6T5R+Fp4QBfyf9evX64YbblB0dLR27typKlWqlHRJBbZ582Zde+21ioyMVHp6epHtp3///po2bZreeust9e/fv9DbSU9P1/79+wv9+djYWJUvX75An0lJSdFvv/2mpUuXavHixVq3bp2io6MLXUNB3HLLLUpLS9O7776rq666qlj2WRAl8X1I0sMPP6zZs2fr9ttv1zfffCOr1VroGiRp1KhReumll3T11Vdr/fr1Cg0NlXT2+Ox2u8qVKyer1Xre+9m0aZOaN2+uqKgoHThwwO2xJycnq1KlSrJarVq5cqVuvPHGAu/Hbrdr7Nix2rJli7788ktZLJZ8bebPn69Ro0Zp5MiRuvfeexUcHFyYQ3LLMAwdOXJEe/bs0T///KMtW7Zow4YN2rx5s7Kzs/XTTz/p2muvDdj+ULYF7icXKAVatWqlfv36aerUqRo7dqymTp1a6G1t375dzZo1K/DnDh8+rBo1ahR6v5GRkZKk8PDwQm+jIPspTBDJa82aNbrzzjsL/flvvvlG7du3d7vO8Qv02LFj2rdvn/7991/99ddf+vfff13azZ49W08//XSh9j9kyBDZ7XaP65s1a6a+fftKks6cOaOffvpJwcHBatCgQYH2M3HiRJ05c0YhISFug0lBhISEaMiQIW63U5TfhzejR4/W4sWLtXz5ciUkJGjy5MmFrkGSBg0apFmzZumXX37R8OHDNWnSJOfyDz74wO/t3H///Zo3b57H9du3b5cktW/f3uO/hR9++EGSdNFFF6lNmzZ+7zuvEydO6J133tGxY8c0ceJEDRs2LF+bzz77TNu3b9err76qzp07+wynNptNr7/+unJzc2Wz2ZSdna3MzExlZGQoLS1NqampOn78uI4fP66kpCSdOXMm3zZCQ0MVHR2tgQMH6ptvvim2P/JQuhFOUWbs27dPV199tcqXL6+QkBCPZ0wcZxunT5/u8fJ+VlaW8zVt2jTdf//9+dpUq1ZN0tmQWLduXb/qO3PmjCIiIvw9JLccv5C8nREyDEO5ubk6c+aMQkNDVa5cuQLvx1Hn+Z55coToZ555Rq+//rrfnxs6dKgmTZrktb/++usvPf744873FotFhmGoRo0a6tGjhxo1aqT69esrLi6u0PW/8847yszM9Li+c+fOznC6fPlyZWZm6oknnlDFihULtJ93331Xu3fvLnSded1xxx165pln3K4ryu/Dm4suukhz5szRHXfcoTfeeENXX321evToUahtSVLlypX10Ucf6eabb9Ybb7yh22+/Xe3atVNMTIyuvvpqhYeHKzg4WFar1W1IP3TokLZt2+Y84+rJtm3bJEldu3b12GbFihWSpAEDBhT630u1atX0/vvvq1OnTho5cqTuuOMOXXrppc71p06d0uLFi2WxWDRjxgy//k1brVatWrXKWZ9DUFCQwsPDFRQUpLS0NLVs2VK33367atWqpZiYGMXGxio2NlY1atQo8M8x4A/CKcoMwzCUmpqq3Nxcl19KhmEoJyfH5ZeQ48ylu/vfDMNQdna285Wbm+t2f44ziy1atND333/vs74bb7xRa9as8fnL0F9Hjhzx6wzbzJkz9cgjj+RbfujQIdlsNkVHR6t8+fIFPltns9mUmZkpi8XiNbA4folOmjTJeXarILydIb7jjjs0depU1atXTw0aNFBcXJwiIyPVpEkTt8Fr7Nix+vTTTz1uLyoqShs3bnRZFhISopiYGO3atctleWZmpsLDwxUSEuJc9tlnn0mSHnvsMb+OLa/NmzerXLlyzp/dgjIMQ40aNdLu3bu9hr6i/D58iY+P19NPP601a9bokksuKfR2HG666SY98MADys7OVvXq1SWd/Y7Hjh3r87MfffSRevXqpbCwMK/ttm3bppCQELVr187tesMw9OWXXyooKEgNGjTQunXr8rWJiIjQ1Vdf7bOmjh076q677tLXX3+tV155RXPnznWumz17tjIzM3XfffepRYsWPrfl8P777+vEiROqWLGioqKiFBkZqXLlyslms+n222/Xd999p7/++kvvvfeeLrvsMr+3C5wPwinKjHr16ik7O9tl2d69e/Xggw/KMAx9++23ioqKyve5Tp06KSQkRI8//rhuu+02v/fn65eaJ0FBgRmnGBoa6vESos1m05kzZ3TmzBmPZz5Gjhzp1+XPnj17qmfPnh7XP/vss3r11Vc9rndcEu/Vq5fbS5WeTJgwQTNnzvQ6QCQyMrJAl+tTU1O1c+dOj+tr1qyZb1ne8OmO40z2qVOntHDhQklS8+bNvX5my5Ytuvzyy12W5b1cmp2draeeekrPPvtsvrO+GzduVOfOndWkSRN98sknqlWrlqSzl5Z3796tChUq6O677/a476L8PvzxyiuvKCQkpNB/pD3xxBP6448/NHToUN19992aO3fued0G4a6OESNGaP78+ZLO/jdEyv+dfvHFF7rkkkv0448/6sCBA5Lk8XaJK664Qr/99lu+5Y77Yx1neS0WiyZNmqTWrVtr6NChznaGYWjatGkKCgpyBm/H1ZHMzEzZ7XaPl9vr1q2b78qO3W5X//799d1336levXr68MMPXYLpsWPHNGzYMD3wwAMeQzlwPginKNNiYmJ05ZVX6u2339btt9+ulStXutw3tnv3bn399deqUKFCgc8iebsP0ZvzvZ/QoVKlSlq5cmWhP1++fHnVqVNHoaGhbu9dO378uE6cOKFatWq5DfW5ubnKyspynkH2JCcnp9A1SmdvsQgUx1nD1atX5xu0YrFY3P7Bkff7evnll3X48GE98sgjzkuujrOcH3zwgTIyMlSzZk2PQcFxa4ev+3i/+OILzZgxQ5988olefPFFDR482LmfnJwcHTx4UGfOnHEJ0zNnzpQk3XvvvV7Pbhbl9zF37lw9/fTTCgsLU7ly5Qr1h1i1atW0fv16j+sPHjyoH3/80Xl2+nz/Pbn7fHJycr4/Yjz9UTN9+nRJ0g033OC81SevL774wuMl+FdffVXjxo1zu2748OFulzdt2jTfMl/3zeZ16tQp9erVSwsXLlSPHj00bdo0VahQ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bt26evbZZyVJcXFxmjFjhvr27asnnnhC69evdxtS87r99tvzTWh9rt9++01XXHGF5syZ43MgUdOmTZ2TfJ+rMPcE5uXubFJISIh69uzpPHPq7UyS4z69du3aeb231WazKTc31+PtCo7R/MOGDct3j9uXX36p559/Xq+88oo6d+7ssm727NkaP368z9kAHN544w2dOnXK+f7hhx/Wxx9/rBkzZjj/IDlfjjO1eS/r533W+caNG7Vv3z699957ys7O1iuvvKLQ0FCNGDFCku8zp9LZJxH9+eef6t+/v+bMmaM///zT5Szs1q1bJUmNGjUq1DEU1/fhTlZWlu677z4tWrRINWrU0PLly/NNqXU+/J3j1F/33nuv1/WOx6Peeuut+vTTTzVu3DjdcccdzvXewungwYP1888/KywszOO90I6nUz300EMe75e12WzKyclRuXLl3F7JOXXqlDZv3qxff/1V8+bN0y+//KIKFSpowoQJGjRokEJCQpSbm6v09HSdPn1ap0+fVkZGhi677DINHjxYEyZMUEJCgg4ePKhJkyYFbLYRlG2EU5R5U6ZM0eDBg1WlShWtWLHC5Zf6Aw88oKuuukodO3bUrFmz9O+//3qdQN3xSyYuLi5fwDh06JBSU1OdA0Qcl/KqVq3q9vLnzp07vV7uK+xUVd6EhYVp9uzZfrV13KfXo0eP8xqtf74h25/PHzhwQBMmTFD58uWdo8l79OihOXPmqF+/frrkkkvUqlWrQu0/b/hMSUlRZGSkIiMjnU+Nyrv+rbfeUs2aNfXQQw8pLCxMc+fO1cmTJ/Xss886Q4A/xxQdHa1PPvlEffv2dblv2m63a/PmzapTp06hHyNZHN+HO+np6br77ru1atUq1alTR6tWrSp0wPbE14Cogqpdu3a+e8+TkpKcMx449OzZU2PGjNFPP/2ktWvXOucfdvyMuPt3vm/fPm3ZskWhoaGyWq1ur9ScOHFC0tnZDDzNV+x4kp2ne+S///57l1uZpLN/oEybNk0TJkxQenq61yegObzxxhs6duyYZs6caYrZRnBh4ycIZdrrr7+uhIQERUZG6j//+Y8WLFjgtt2IESM0depUDR482O3zpR0cl8q///77fCO2Hfd6OqaqcrQdOHCg88xZXhaLxeul+/MNp3lDkycbN25Udna2rrzySp9zb+Z1+PBhrVu3TtHR0T4fXOAIZBMmTNCECRPctvE2atnXmRrDMPTYY4/p9OnTevXVV/Xcc89JOnuWe8yYMRo1apQefvhhbdmyxddhuZW3H//++2/npPcOjuPbtGmT5syZo9dff935R0ynTp00efJkrVq1SvHx8W7PnCYlJenqq69WuXLlVK5cOa9ns202m9LS0pSTk+P2bLbjLHZmZqZGjBih/v3752tT1N+HOydOnFD79u31888/Ky4uTqtWrSrw1G3+8DUgqqASExM9TiWVl+MhHiNGjNDrr7/uVzj94osvvO77+PHjio2NVW5ursLCwrRu3boC3crh0L59e1188cWqUqWKqlWrpipVqjj/wCpXrpzCwsL04YcfateuXRo1apTq1q2r8uXLq0KFCoqIiFBkZKR27typxx57THPnzlW7du3O649VQCKcoox7+umndeTIET3yyCNq2bKlFi1a5Lbdk08+qf/973+yWq1eJ7P25z5URzDxp623IOKY7LygU1Wd+3lv7rvvPu3du1dbt251GRTmy19//aV7771XLVq08BlOHXVMnDjR5ak30v89QtLdI1YdZ7w9PT7WYdq0aVq2bJmuuOIKDRkyxBlOpbMTmc+bN0/btm3z62lY7jhuVzh16pQOHDiQ7+lL2dnZOnjwoDp37iy73a5t27bp/vvv14kTJ7R7925JZ4OII5ye+53b7XalpKQoOztbOTk5Xs9KHT16VNLZnzF3843a7XZlZ2crIyPD49mwov4+zpWUlKR27dpp+/btatasmVauXJkv4JcGjz32mMaMGaPFixdr7969qlevnvMPXV/zkLrz+uuvKysrS3Xq1FFSUpLuvfderV+/vsCDq8qVK+d1Vg9JWrVqlXbt2qVevXqpfv36+dY3b95c5cqVU40aNTw+lQ4oCMIpyrSwsDDnnKeRkZGqUaOGyzPS58+fr3vvvdfnGSsHf+c/9Lett9AZFhZWqKmqHPz5Jea4f7Cg9xG6mwjdE0cYSkhI8PikGU9zLkrKdwk1r40bN2rYsGEKCwtzO0NBcHCwpk2bpp9++kn9+/cv1P2IjocmOAa7OOZ/DAkJ0TvvvKN69eqpevXqzlD5/vvvKzY2Vg0bNlSrVq10+PBhLVy4UO+++65zUva83D12153ff/9d1157rYKCgvTTTz8Veoqfovw+zrV161a1b99eBw4c0JVXXqnly5e7fYrS+fI3MBc0WBdEzZo1dc8996hx48bOgWKOvipoOP355581efJkhYWFafXq1Xr88ce1atUq3Xvvvfr0008LdJXDITMzU4899pgGDRrk1xymn376qZYuXapp06YpMjKSEfsIKMIp8P95C4v+3kPlzxlMx+CE8xk4cObMGd199935BqUEmqPGohzk0L9/f91///1u13kbgOPgKczs2LFDd9xxhzIyMvTWW2/piiuucNuubdu2atu2rcuym266ye/6HWcgO3bsKOnsZdKFCxeqVatWeuKJJ5ztJkyYIIvFoptvvtllYvqbbrpJSUlJOnDggHJzcwt1v97Jkyd17733KicnRwMHDlSzZs303//+V3fffXeBZ3Uoqu8jr9zcXE2aNEnjxo1TWlqaWrRooaVLlxZqdL8/HGcofQ2I8ufeyvNx7lWXlJQUSSrQ/cE7duxQp06dlJOTo0mTJikuLk5z5szRlVdeqcWLF6t169ZatGiR2zOcntjtdj3yyCP67LPPtGDBAq1bt07XXHONx/ZHjx7V008/rRMnTmjDhg2aN2+errzySr/3B/hCOAX+v4yMDNntdpdfII770Pz9pZV3WiFPMjMzVaFCBb/aejJ27FjNnz9fffr0cc4ucOzYMW3cuFEdOnRwtsvIyNCrr76qhx56yOV+tJMnTyohIUFjx47Nd29scUpLS9P27dsVERGh8PDwAk3PlZOT43wakbuHKYwYMUInTpxQ9+7d3d5b6Y7jO7nnnnvcPuXJ03e2detWLV68WNdcc42OHz+url27Ki4uTmvWrHFOweNpZPfcuXOdl7HdnTn15dChQ7rjjjv0119/qW3btnrttdf0+eef6/7771e9evU0duxY9ezZ06++Lcrvw+Hw4cPq0qWL1q9f71xWr169Iv0DqFmzZh4nws/L3XPpi5JjQJO/Z06XLl2qHj166MSJE+rXr5+GDBkiSapRo4ZWrVqldu3aaevWrbr88ss1ePBgDRkyxGfwtdlsevTRR/XZZ58pNjZWixYt0lVXXeX1M9WrV9fmzZt1//33a8OGDWrZsqWmTJni8scYcF4MoIwZP368IcmYMWOGy/KQkBBDkttXnz59nO0+/fRTQ5IxevTofNu+9957DUlGXFyc0bhxY5dXVFSUIcnYu3evYRiGsWTJEkOSUbVq1XxtGzdubEgyWrVqlW8fOTk5Ru3atQ1JxnvvvWcYhmEcPHjQCA8PN6pUqWJkZGQ4244ZM8aQZHTs2NFlG3369HG7/FzNmjUzJBl79uzJt2706NGGJOPjjz/Ot+7nn382JBlt27b1un1Hu/N5Wa1Wt9vOyckxRowY4dIfhmF4rSshIcGQZKxevTrfOklGnTp18i3Pzc012rZta0gy5s6da6SmphqtWrUyJBlXX321kZ6e7rUP8oqMjDSqVavmd/v58+cb1atXNyQZt99+u5GammoYhmGcOHHC6N+/v2G1Wg1JxmWXXWasXLnS5/aK8vswDMPYsWOHUa9ePUOSERMTY0yaNMn5s161alXjpZdeMpKSkvw+fnceeOABQ5Ixb96889rO+++/b0gynnrqqXzrhg4d6rMfdu3a5XMfw4cPNyQZixcv9tru33//NR566CFDkhEUFGSMGTPGbbu9e/c6+1OSUalSJWPYsGHGjz/+aNhstnztk5OTjfj4eEOScfnllxsHDhxwu92bb77Z7X8HsrKyjL59+zr317dvXyM3N9fncQO+EE5R5rz00ktuw+m///5r7Nmzx+3r+PHjznaTJ082JLn9BdGlSxefv7R27NhhGIZhLFq0yGfb5s2b59vH3Llznb/cs7KynMtvuOGGfMd14sQJIzo62pBkrFq1yrn8yJEjRqVKlQxJxueff+6xrxo0aGBIMnr16mUMHDjQ5XXdddcZkox27drlW9etWzdDktGmTRuv30V6errxxx9/GIcOHTKys7PzrZ85c6YhyZg5c2a+dbm5ucaZM2eMY8eOed1HXtnZ2YYk44YbbnC7vl+/fh7DaePGjY3rrrsu3/IhQ4YYkowbb7zRsNvthmEYxqlTp4zLLrvMkGTcfffdzuXeLF682JBkNG3a1Gs7m81mLFmyxGjTpo0hyQgJCTFGjRrlNhRs3brVuP76650/T926dTMOHTrkcdtF+X389ddfRo0aNQxJRv369Y19+/YZhmEYmZmZxogRI5x/HFosFuPqq682+vbta0yZMsWYN2+esWLFCuOHH34wfvrpJ2PNmjXGt99+a/z3v/81pk2bZnz00Ucu+7nzzjsNScbs2bO9daNXNpvN6N69uyHJGDJkSL71Tz/9tCHJqF27dr4/KiMiIgxJxrZt27zu49ChQ0bDhg1d/puQV05OjrFixQrj/vvvd/ZN/fr1ff6RkZ6ebgwePNj5h4njVb16deOff/5xtvv111+dfyi0adPGSE5OdtmO3W43srKyjN27dxs1a9Y0JBn79+93u8/XXnvNGYb/+usvr/UB/uCyPsocT6PUvU1dc+rUKfXs2VMpKSlauXKlJPdP4HEMXElKSvI4lZTjFgFH25deesnjVFLnDoSx2Wx66aWXJJ2dJD3v/YR9+vTRDz/8oDfffNM5qXzlypWVkJCgESNGKCEhQZs2bZLFYlH16tX14osv6umnn9agQYPUrl07t/MgOu7Vmzlzpse+WbZsmZYtW+Z2nafbIU6ePOkcoBQZGenxUrbj0u/69es93otps9mUmZmpzMxM9erVy+slUsfxeHogwOTJk/Xaa6+5Hch17gTmubm5euKJJ/TBBx+oevXqmj17tvPSdMWKFbV48WJde+21+vrrr7Vu3Tq3o5hXrFihF154QadOnXKO3M87SbtDenq6fvrpJ3377bf64osvnE+BateunSZMmOBxovpLL71UP/zwgz788EM988wz+vTTT/XNN99o/PjxevLJJ53tiuP7qF+/vh544AF9/PHHWr58uerUqSPp7MC+l156ST169NCLL76o+fPn65dfftEvv/zidvvn+vjjj/P1lSS/BpGd68SJE7rqqqt0/Phx58+Ku4Fljv+GeJtK6tz/zmRlZalHjx5KTU3VsWPHtHXrVuXm5ur+++93O7CxW7dumj9/vqSzl/1feOEFDRs2zOcgw8jISE2ePFkPPvigRo0apaVLl8put6tnz55q0KCBs90ll1yie+65R7t379a8efPyDZC87rrr9PPPPzvfR0VFuTwlKq9hw4apfPnyatmyZcDnpkUZVdLpGChuzzzzjNszp744zsg0a9bMmDx5stuzYbfddpshye2lyQEDBhg1atQwNm/ebBiGYcyZM8eQZLz00ktu9zdx4kTjgw8+cFk2ZcoUQ5JRs2bNfJerT58+bYSHhxuSjK1btzqXJycnG1FRUYbFYjE2bNjgXJ6Tk+M8czNixAj/O8IPjsvDl156qdv1O3bsMIKDg43IyEijatWqRo0aNQr9qlKlihEZGWlYrVa3tx/kdfjwYeclzPNlt9uNF1980YiMjDR++uknt22+/vpr48svv/S4jdzcXOfZxMqVKxtPPvmkkZaWlq/dokWLjLCwMOdl83vuucf48ccfC1RvUlKS8+dzwoQJLuuK8/vYvXu31zpTU1ON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3r27X9txBDdfbDZb4QqVVLlyZVWtWtXv9itWrFBQUFC+QDxy5EitXLlS69evd1lut9uVnZ2tWrVqud2e47aFxo0bO8/mepKVlaWmTZv6XSsAeEM4BVCqrVy5Urfddlu+5e7u2axcubLz/1988cXauXOn222mpKRo7NixGjt2rNd9Z2Zmel2fnJysw4cPuyxzDFzatWuXkpOTXdZZrVY1atTI7bYaNGjgdnlkZKSsVqvPs58O27ZtU0REhK6//nqlpqa6vffVnezsbB06dEjp6emqVauWypcv79fnAOBchFMApZojhC5fvlytWrWSdPasoSTnvZmpqakug5569+7tMZhK0ubNm/3ad40aNbyu/+yzz/TEE0+4XdemTZt8yypVqpRviqkzZ84oJCTE71sNzuUY/BUaGiq73a5LL71UwcHBslqtzv/1dzs2m03Z2dn6+uuv1a5du0LVAwCEUwClmiO0hYeHO8/mjRs3TkuWLNF///tfBQUFqUWLFurevbvGjRvnDHreQlmTJk0CUpvjtoLVq1frxhtv9Nq2R48eWrVqVb7lt912m3788Uef+/J1aX779u1q0qSJM7j//PPP2rBhg8/tOgQFBalfv35+twcATwinAMqUTz75RCNHjlT//v1Vu3ZtWSwWDR06VM8++6zWrl2rhQsXuv3cbbfdppUrV7pd5wh2lSpVyncp3mHhwoXq2LGjyzJ3o+S9cUwzldfbb78twzDcTpclnZ3PdfXq1W6DrXT2/tn09PR8c6p+9913eu655zR79myXS/uPPfaYunbtqvbt2zuXffrpp1q9ejXhFEBAEE4BlBlvvfWWBg4cqJ49e+rNN990Lh80aJBatmypjh07ql+/fm7vRy1XrpxuvPFGvfPOO85lGzdu1MMPP6yKFSs62/Tv399lbtMDBw7o1ltvdTutlOMspb9ycnLyLbviiiu8fqZixYoKCQkp8NleR71PPvmky/KMjAzNmzdPX3zxhXNZdna2x9kAAKCgCKcAyoTc3Fzt3btXTz31lGbOnKnZs2e7rA8JCdEff/yhmJgYPf744/k+b7VaFRkZ6RLyHIOZHEHOarWqatWqLm0cQdfdPaFnzpyRJN10001+HYO3p039/fff+uKLL9S5c2c1btzY57ZefPFF1atXTw8//LDb9dnZ2ZLOTmmV9wxv48aNNXToUPXp08e5bNy4cZozZ45fxwAAvhBOAZQJwcHBzidBff755+rdu7eGDBki6eyk9nPmzNHFF1/s8fNWq9XjFFKO+1O93ad67j2fNptNnTt3zvcAAG+8bX/v3r0aPny4LrvsMr/C6YwZM9SqVSuP4TQ3N1dhYWH5tpWVlaUXX3xR48aNc1nu7xOrAMCX/DcoAUApFxQUpKioKMXGxio2NtavS9LeBhQ5QquvQUd5zZ8/X82aNdNff/2lJk2aKDk5WVu3blWTJk3UpEkThYSEaOrUqYqLi3Mu++677/I9atXBcWbW39H1VqvV7T2qDkOGDFFmZma+V3R0tCZOnJhv+fHjx89rXlcAcODMKYAyJyMjI988pe4GG+VlGIYOHjyoefPmOZdt27ZN0v/NZ2oYhv744w+XNseOHZOU//7S6dOn6/Tp087prZ577jlt375dd911l8qVK6edO3fqnXfe0UUXXaShQ4dKkpYtW6bFixcrPj5el112WWEP36fMzEyFh4fLYrHk65esrCwlJCS4PD41NzdXNptNM2fO1COPPFJkdQEoGwinAEo1wzDyLfvjjz/yhcW8Zz0dT0fKy2az6ddff1W3bt3yrXOEU5vNpi+++MJlsJBD3lsCfvzxR33//fcaOnSoqlWrJkl6+umn1bVrV82dO1ePPvqo7rjjDt1000166aWX9Mgjj6hq1ap68803tXLlSvXu3Vvr1693OfPp2P7+/fu1Y8cO5/Lk5GTl5OS4LJPcD65yCA0N1datW9WgQQNFRka6rKtYsaLGjBmjQYMGuew7IyOj0HOtAkBeXNYHUKq5u0+0du3azkv6jldMTIxefPFF3XXXXVq4cKHL06Kks8GzQ4cOMgzD+Vq9erUk13A6evRolzZHjhxRhw4dFB0d7dzWyJEjFRkZqWHDhjmXdezYUZUqVdKyZcucy0aNGqW0tDQtXbpUkhQTE6NnnnlGGzdu1JIlS1zqO336tCSpT58+atq0qfM1Z84cHTx40GVZ06ZNdfDgQbd9k5qaqqNHjyo2NlaGYSg9Pd3lJZ0dLJV3WWZmpoKCgpSVlaXDhw+7/YMAAPzFn7kASrWsrCy/24aHh2vJkiVq3bq1XnvtNZd1mZmZ+eYlDQkJUZUqVZwhz93jSqtXr67Fixe7LPvmm2+0ceNG51lTx7bWr1/vMgDpxhtv1F9//aWGDRs6lw0ePFi33HJLvoFUnTp1KlAorF+/vtt6X375ZU2dOlXh4eFu718NDg7WhAkTNGHChHzrHPefJicn8/hSAIVmMfgTFwAknb0E7hgsBQAoGYRTAAAAmAb3nAIAAMA0CKcAAAAwDcIpAAAATINwCgAAANMgnAIAAMA0CKcAAAAwDcIpAAAATOP/AUAqPAs8XisHAAAAAElFTkSuQmCC",
"text/plain": [
"<Figure size 800x600 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"pv_item = data[data['behavior_type'] == 'pv'].groupby('item_id')['user_id'].count().sort_values(ascending=False)\n",
"buy_item = data[data['behavior_type'] == 'buy'].groupby('item_id')['user_id'].count().sort_values(ascending=False)\n",
"merge2 = pd.merge(pv_item, buy_item, on='item_id', how='outer').fillna(0)\n",
"x = merge2['user_id_x']\n",
"y = merge2['user_id_y']\n",
"plt.figure(figsize=(8, 6))\n",
"plt.scatter(x, y, marker='o', color='g')\n",
"plt.xlabel(\"商品点击量\", fontsize=14)\n",
"plt.ylabel(\"商品购买量\", fontsize=14)\n",
"plt.title(\"商品点击量和购买量之间的关系\", fontsize=18)\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 17,
"id": "0531ec36",
"metadata": {
"pycharm": {
"name": "#%%\n"
}
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA0cAAAIbCAYAAAAggeW7AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAACkVklEQVR4nOzde3zO5R/H8de98xw25hSSQ6SUUyGURIpyPlSkk1JJolBSISpKUlRSiH5yKuYUIoWklUMMDUkjOR83M5vZvr8/ru57u21ms3v77vB+Ph73Y9f3cH/vzz3bfD/3dV2fy2FZloWIiIiIiEgB52V3ACIiIiIiIrmBkiMRERERERGUHImIiIiIiABKjkRERERERAAlRyIiIiIiIoCSIxEREREREUDJkYiIiIiICKDkSEREREREBAAfuwMQEQE4deoU3t7eBAUF2R2K2ODChQv4+OTN/5IOHDjA/v37AahatSolS5bM1PNPnjxJSEhIdoQmIiKZpJ4jEbHVwYMH6d27NxUrVmTMmDF2h1PgnTx5ku+//56wsDA2b96cI68ZHx9PlSpVGDhwINu2bcuR1/Skr776ikaNGtGoUSNWrFiR4ecdP36chx56iIoVKxIREZGNEWZOYmIis2bNYtKkSXaHkueFh4dny79tQkIC33//PT169GDq1Kkev75IQeawLMuyOwgR8bzY2FjOnz+fLdf29fWlcOHCHrlWTEwMlSpV4sSJExQrVox9+/blu96jkydPYlkWhQoVwtfXF29vbxwOxxVd6/z588THx7seZcqU8WiPy6ZNm6hXrx4AderUyZEE6euvv+bBBx8E4Pbbb2f16tV4e3tn++t6yocffsiLL74IwNy5c+ncuXOGnvfGG28wfPhwAG644QbWr19PkSJFXMePHDnC2bNnCQgIwN/fH29v70z97Hh5eVGoUKEMnbt//342btzI8uXLWbJkCf/++y8hISH8/fffBAcHu8678cYbL3uz37t3bz755JMMvS7ApEmTmDdvHlOnTqVs2bIZft6lxMXFsX79epYtW8apU6eYOHFiuue/++67vPLKK5e9bps2bVi8eHG658THx/P777/z448/smjRItavX891113Hb7/9RrFixTLzNtK1c+dObrzxRpKSkqhSpQq7d+/Gy0ufd4t4hCUi+dKTTz5pAdnyaNWqlUdjHTlypOva7733nkevnRs8+OCD2fZvsWPHDo/GumPHDte1n3nmGY9e+1Luu+8+C7B8fX09/n5ywoQJE1zfs8WLF2f4eefPn7fq1avnem737t3djvfr1y9LPxvVq1dP9/UfeeQRq3bt2lZwcPAlrzFkyBC359SuXfuyr/vKK69k+Hvw9ddfW15eXhZglShRwpo7d26Gn5uQkGDt3r3bWrJkifX+++9bPXr0sG6++WbL19fXLZ6pU6eme52PPvooQ9/PBx54wLIsy0pMTLSOHDlibdq0yZo7d641atQo65FHHrHq1KmT6rWdj9atW1tJSUkZfm8Z0aZNG9f1V6xY4dFrixRkeXOAt4hcVkBAQLZd29/f36PXe+aZZxg+fDjx8fF8/PHH9O/fX5+C2sTPz8/Vrly5cra/3t9//+0aivbss89y/fXXZ8vrxMbG8s8//2To3FKlSlGiRIkMXzvl98zX1zfDz/P19WXWrFnUrl2b2NhYZsyYQdOmTXnqqafSPN/Lywtvb+/L/m7Ex8cDl/893bZtG+Hh4a7ta665hrp163LzzTdTv3596tevn2r+lPO9Pvzww3z00Udux2rVqsX+/fsJDAxM93VTatiwIc2aNeOHH37gxIkTdOnShf79+zN69Gi8vb1ZsWIFERERxMbGcurUKQ4fPsyBAwf4559/2LdvHxcuXLjktUuUKEHVqlVZtWoVDzzwwCV70Zz7K1euzO+//57qeO/evZk1axaBgYFs376dunXrpvu611xzDTfeeCM1a9akTp061K1bl+rVq1+2xy86OpqDBw+me05Kt99+O99++y0An3/+ORUqVEh1TlJSkqu3OS4uDj8/Pxo1apTh1xApiJQcieRTzps0b2/vdP8j79mzJ1OmTAHAuswoW+d/7p5OjkJCQmjfvj1ff/01QUFBREZGcu2113r0Nex03333UblyZQoVKoSPj88lb3B/+OEHvvvuOwBeffVVihcv7nbcsqxUw+ouPierUg7Ry4kiAS+++KLr53P8+PGMHz8+U8/38fHh119/5ZZbbkn3vI0bN9K0adMMXXPUqFEZGmbllPKmN7NJfdWqVRkwYABvvvkmAG+++Sbdu3enUKFCjBgxgqFDhxIYGJiphKNSpUrs27fPLWlLi3NobK1atVi9enWGfpYSEhIAKFKkSKphYs73npkEsUKFCnz//fe8++67vP766yQmJjJ2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ERF0796dM2fOUKdOHd577z2effZZ1/GTJ09Svnz5DL+H4cOHu5K39Bw7dixVeXJn0pOYmMiBAwcu+dzs7jlKycvLi3fffdf14cHFhg0bdtn5dpZlpfoZCw4O5vTp054KUyRfUnIkkk85Jw9nRynvjCroydGtt956xWV9M7vGUJkyZdwqzaWUmeTIOeHb39+fcuXKZSqGyyV/rVq14tVXX2X8+PEsXbo0zU+w33//ffbs2cOSJUvo3bs3Q4YM4cSJEwQGBjJz5kw6dOiQqZicUv6sHD9+PFUVvpRrIGXnz1V636OUic6qVau48847L3nunXfeyZo1azwy2b5OnTr8+uuvlzy+b98+1wT/Ll260L59+zTPe+WVV2jYsCHbt293+5uT1vyhwoULU7NmTX755RfOnj1L7969WbhwIV988UWmf+6yqmfPnm7vaenSpQwYMACAHTt2uPYXKVKE2NhYAgMDM/23EODChQskJSVd8kME55BFcP+d9fPzIyAgAB8fH06ePAng6lFLS2xsrGtEQEhICJZluYqEiMjlKTkSyaeSkpLsDiHby8amdRN79uxZoqOjCQgIwN/f363C2JXc0KTF+Ql7YmIicXFxxMXFuSbs52VRUVGsXbsWMDeCJ0+ezFSRhcvx9fVlxIgRPP/885QqVSrNc3x8fPj000+pXbs2p06d4sSJEwC88847V5wYgXtiP27cOMaNG5ehc3PSlXyYkJ3zo5wqVqxIWFgYb7755mWrF955553pJnUpr/nTTz8xYsQI3n77bRITE1m+fDk33XQTn376KV26dOGPP/5wJQHe3t54e3un+rcpWbIkiYmJDBo0KM3YnImBc3hfWr2hJUqUcPs537Jli6udcijwhQsXXP9Gvr6++Pr6uv62OHuV4uPjXa9hWZbr78T58+dJSkpi0KBBvPPOO2l+T1L+zfb19eXNN99k5MiRrr9zSUlJrr+pgwcPvmSlzjfeeIPhw4fj7e3t+v1xUoEGkctTciSST2W0PG12yu6enbRuYr/55htXgYCcNGvWrFQLOD755JPExcVRqFChS97cOVmWxWuvvea6ebnlllsuuyCk88YrNjbWI4norFmzXJPpT5w4Qd26dfn6669p2LBhlq+d0qUSo3379jF+/Hg+++wzV2ECh8OBZVm88MILrFy5kj59+nDXXXdl+v1mJuFJea5lWSxZsoQJEyYwZcoUypYtm6nXzYwr+TfMqd5Tf39/3nrrLY9e09vbm+HDh9O8eXMeeOABjh49yqlTp3j++ee55557LjkPKi0BAQGXHQaa1nyixMRE9u/fD+CqSpgRCQkJl0w0rnR4csphe87k6+JYMyOt/wOyuzdfJD9QciSST6U3lC6/yA0JYHqGDBmS4XPXrVvndrMVGRnJc889l2NrlJw7d463337bte3j48P+/fu54447GD16NC+88EK2vG58fDxLly7liy++YNmyZa4bwJtvvpmRI0dSuXJlhgwZwjfffMPixYtZvHgxpUuXpnXr1tx99900aNAgQ2WlUyYRl1vnKKUJEybQp08fAF544QXmzJmTlbebYTExMenODfHk77dlWcTFxbl6Opw9LefOnaNcuXL4+fnRoEEDYmJiKFSoUIbnz3Xq1MlVfCM9TZs25ffff6dz585s2LCBGTNmZLjyYVYdOXLENYR17NixvPjii5c818fHh7/++ovg4GACAwPx9fXFx8cHh8NBq1atWLFiBQAfffQRzz33HJZluXqZz58/T3x8fLrJScrkKK1KnCmTo7i4uEv+fDg/4EhKSsKyLNt6QkXyKiVHIvlUbkiOUlbCc6674UmZ/SQ1N/v666/dtk+ePMmMGTPo2bNnjrz+66+/7lrDplu3bvTq1YvOnTtz/PhxXnzxRX766SemTp3qkfV4Tpw4wYoVK1i6dCmLFy92+6S9RYsWDBgwgFatWrn2zZkzh9dee42PPvqIOXPmcPToUaZOncrUqVMBUziibt263HjjjZQrV46yZcty1113uc1putIbxKeffprPP/+crVu38vXXX9OjRw+32LJL27Zts/01nNavX3/JJHzbtm3cdNNN/PPPPxw5ciRT133++eczfG758uX56aef+P777zNdiTArUg6FTWtY7MmTJ0lISCAmJgZfX99LJuIp5yb98ccfOBwOHA4HXl5e+Pj4uBXquJSUc4LS+vdI+ff07bffdvswI71raj04kcxRciSSTzn/I01MTMzwjaGnP2FM+Z95dkgrAWzTpg2bNm0iICCAgIAA13A2ZwlmT3AOZ0s556hixYpXfL34+HjXuj4NGjQgLi6OrVu38tZbb/HII49k+3pO33zzDWPHjgXMHI5x48ZRqlQpNmzYQNu2bdm+fTvz589n69atzJs3j9q1a2fq+vv27WPTpk1s3LiRH3/8kQ0bNrjNryhTpgzdu3enZ8+e3HDDDWleo1atWkyaNIlx48Yxd+5cvvnmG3788UdiY2M5ffo0q1atYtWqVYAZPnXxmlpXmkj7+voydepUGjRoQGJiIi+88ALbt2/Pkbk+ucmsWbPYu3evq2T5V199leZaRyNHjmT69Ol4eXnRokWLTL2Gn58fd911FzExMTm2Pk/KcvVpla5PORfpwQcfZPbs2anOOXHihOuDBcD1c5hZ0dHRrnZaPWexsbGZvmZMTIySI5FMKlh/3UUKkOxOTDLi0KFDrvbgwYN59NFHs3zN+fPnu9a/Sav6UsmSJVOV6s3tJk2a5PpePfzww5QuXZquXbuyb98+xo0bx8svv5xtr718+XIefvhhwCTH06ZNc80JqlSpEj///DMdO3Zk1apV7Nmzh0aNGjFlyhS6deuWoesvWLAgzcV/y5QpQ4cOHbj//vu58847MzzfplChQjz66KM8+uijxMXFsXr1apYvX87PP//Mli1buHDhAiNGjEjVw5WZ5Oji4Zo333wz999/P7Nnz2bXrl1MmDCBvn37Zvh6VyKj1eo8oWnTpqxatco1rM65LtC5c+dcv0vOIYevvfYahw4dYufOnWmWVP/tt98AqFev3hUV85g6dSpffvklixYtonTp0oD5W3a5SmvpDTNLb6HclMPc0kp4K1Wq5Oo5utTP6Jo1a9x+Znbt2kVERESm5kxBcnLk5+eXZqJWvnz5XD+UWCQ/UHIkkk85hyqVLFmS3bt3X/K8vn37Mn36dCB5scNLyew8gJSfpjZq1Mgji8CWL1/edZOSGxLArIqLi2PUqFGAmWfQtWtXSpQowRtvvMHOnTt588036dy5c4bm1WTW7Nmzefzxx11zHQYNGkTr1q3dzgkODua7777j0UcfZc6cOZw7d46HHnqIP//887LrrAB06NCBRx99lK+++oq6detyzz330KpVK26//Xb8/Pz47LPPsvQeqlev7irLHRsby2+//catt96a6rysJEcAAwYMYPbs2Xh5ebF27dpsT45yWsphYL6+vgQGBqZZ4KBVq1ZMnTqVb775hhEjRrj1Nm/ZssVV8vtKhtAmJSXxwQcfsHv3bmrVqsWePXsoXLgwgwcPTre6IJDumkBZWSg3MjLysuf88MMPgEnCChcuTHR0NF999RUjR47M1GsdO3YMcP87GxkZyYULF/D398fPz89VIS+zgoKCcv3SByK5hZIjkXzKuW7Lddddl24Vp5RrbmR20c/LSVkS91LDpTLL2WuQXwwdOpSDBw8C8NRTT7l6bT788ENatWpFTEwMjzzyCGvXrvVYafSkpCRGjBjBiBEjXIlAly5dLnkz5+fnx4wZMwgICODLL78EYNq0aTzzzDMZer0PPviAsWPHpupJ8Pf3v6KhQimlHDJUqFChNIsqQOaSo7TK4NerV4/x48fTvn17rrnmmswHmk88+uijTJ06lV27drFixQpatmzpOjZ+/HjAlIG/koV658+f7/og5+6773b1nmS1RH52FjW5cOGCa0hss2bNKFWqFLNmzWLKlCm88cYbl10YOSXnnK6Ui9/26NEjyz2EtWvXZuPGjUqORDJIyZFIPuW8yahevbptMfzyyy+AuVnKjp6PvG758uWMGTMGMDf5KddpadmyJZ06dSI0NJSwsDBefPFF181nVj366KPMmDHDtd20aVOmT5+e7pwzb29vvvjiC86fP8/WrVv54YcfKFOmTIZeLyQkJM39zuSoS5cuvPnmm5l+Dxs2bMjwfIqUCc+QIUPSrSR4qUQqMwUGrsSVzIvKrmFWp06dIiwsjLi4ODp16uTaf+edd3Ldddfx559/8t5777mSo8jISGbOnAlA9+7dL1t8IC3OUuG+vr4MHz7ctd85565ixYrs3bs3w9dzDj3Mzjl7y5cvd/X4PPDAAwQHBzNr1iyOHj3KV1995ZqjlRHOBaOrVKni2ufsjQoMDCQpKcm1CGz58uXTnff277//kpiYiJeXF59//nmBmyMnkhX6bRHJh/bu3esaVufpNWoy6siRI2zevNkVg8rJutu6dSsPP/yw6+Z25MiRbp8YA3zyySesW7eOI0eO8NFHH1GxYkUGDBiQ5deeNm0azZo1o3///tx88818++23GUoyvLy8+PLLL4mKivLIvC7nTWtwcHCmh1w6exMyum5LZhIPu6ogpizlntFS3p5Y1PPs2bMsW7aMrVu3sm3bNn7//Xd27tyJZVk8+uijbskRmCTx+eef54cffmDZsmXce++99O/f31Wq+nILxaZl/vz5rp7mJ5980i1ByOqNfXYmBs4FXX19fenUqRNFixalZMmSHD9+nHfeeYfHHnsswz2+e/bsAdyTI+eQPTCFH66//nqOHz9Ox44d+eijj9K8zsKFC10LJr/22ms0aNDgSt6aSIGl5EgkH/ruu+9c7ebNm9sSw+zZs103mffcc48tMeRW69evp1WrVq45XnfeeWea6whdddVVzJw5k7vvvpukpCQGDhzI2bNnGTp0aJZe38fHhyeffJK7776bkiVLZmrYkq+vr8cKXnhimE9GbzxTJjz9+vWjV69ebsfXr1/PY489BthXBj/lEMOMlvJ2rmmTUUuWLOGnn37i77//Zv369QBs3LiR++67L9W5DoeDcuXKpdr/5JNPMmrUKA4ePEivXr147LHHWLBgAQB9+vShUqVKmYopMTGR1157DTA9qBevQZXVnxNPJUcnTpygUKFCrmF633//PT///DMAPXv2dA0b7d27NyNGjGD37t189tln9O7d+7LXPnTokGtYXbVq1dI8p0SJEowbN47u3bvz8ccf06hRIx566CG3c3bv3u2a79W8eXPeeOONK3qvIgWZBqCK5EPffvstYIahVK1aNd1zs2tYjnMNGi8vLx544IFseY28aOrUqTRv3tyVGNWoUYN58+ZdsmetefPmfPrpp67jw4YN47HHHnNbG+hKXXPNNVmez5EVnkiOMnqNlMPqSpYsyfXXX+/2SDmPyBO9MVciJiYm258TFhbG6NGjmTt3rlsBlsDAQG677Tb69+/P9OnT2bhxIzExMa5iISkFBga69v/zzz+uIZEVKlRwGw6XURMmTHCtE/T000+n6kHNqqz0Ws+bN4++fftSu3ZtSpUq5erdOXv2rCvBDgwMdEvoBgwY4PoAYciQIRw+fPiyrxMWFuZq16tX75LnPfTQQ67qkk899ZRb2fDDhw9z3333cerUKapWreoqICIimaOeI5F8JjIy0tVzlJFyyyk/UU9MTLzkJ/EpP02/3M3G/PnzCQ8PB6B169ZZWgMovzh+/DjPP/+82zop119/PStWrLjknBynp59+mgsXLtCnTx8sy+J///sfK1euZPz48XTu3Dm7Q882nigwkdGbv8wMlXNW78tpDzzwQLZ/kFCrVi3AzEU8ffo0R44coWHDhqxduzZTPSzdu3dn9OjRblXgpkyZkum5Rv/++68rsQgMDGTw4MGpzsmpIbnr1q1j9+7drFy50rWvS5cubuc4f9769evH33//DcALL7zg1sMWFBTEu+++y5NPPsnJkyd5/PHHWbJkSbo/74sWLQLMENObbrop3TgnTpxIREQEv//+O/feey+zZs3i5ptv5t577+Wvv/6iVKlSfPfdd67iLiKSOfpIQSSfGT9+vOtGMCNV3S5OjlKKj48nLi6O6Oho12RrINUaMimdOXPGbYiYJ+bI5GUXLlxg4sSJVK9e3S0xatGiBWFhYRn+lLx3794sWLDAdfN58OBBunTpQs2aNfnyyy+zXPXNDs5eS8uyuHDhQqYeme3xvFxyVKNGDWbNmsWsWbNSlTP3pJSJV3YN33OuCZRWUtGyZUsOHDjAzp07qVOnDmDmfmUmMVq7di3169dPVR67d+/ezJw5M8M9b5Zl8cQTT7jW9+nVqxdXXXVVmueBKVjgLDmekUd6Vd6SkpJ44oknqFmzpmvfxx9/zNChQ/npp59c+6pXr85TTz3FV199xT///EONGjV4++23mTJlCgB169ZNc+jaE088wV133QWYog3PPffcJX9m4+LiXMnR3Xfffdl/i8KFC7NkyRKuv/564uPjuf/++6lbty47duygXLlyrF69WgVwRLLCEpF8Y/fu3VZAQIAFWA0bNszQc7p06WIBFmBFRUW5HVu8eLHrWMrHnDlzLnm9+++/33VeixYtsvR+8rLTp09bn3zyiVWpUiW3752vr681YsQI68KFC1d03Z07d1qNGjVK9W8SGBhotW3b1oqMjEz1nPLly1uAVbFixay9qTQMHDjQFcP06dMz9dyrr746zZ+vzDyaN2+eoddas2aN6zlvvvnmlbzVSxozZozr2qtWrUr33JS/U5999plH47Asy/rzzz9d17/33nvTPfeee+6xAOuOO+647HXPnTtnzZ4922rcuLHb979FixbWnXfe6bavVKlS1jPPPGPNnz8/1d+UlN599123n99Dhw6led5bb72VpZ+RZs2apXnd9u3bpzr3+uuvt5599llrzpw51uHDh1M9Z+TIka5zr776auuff/655Pvbv3+/VaJECdf5jzzyiJWQkJDqvC+++MJ1zsyZMy95vZRiY2OtsWPHpor/5Zdftk6cOJGha4hI2pQcieQjzZs3d/0nOX/+/Aw957777nM95+Kbk6SkJLf/3AGrTZs2l7yxHzp0qOs8Pz8/648//sjqW8qTVq5c6UpSUz5uvfVWa9OmTVm+fmJiojV+/HirVKlSbtcfM2ZMmueHhIR4JDk6deqU9dxzz1k9evSwHnzwwVRJ2sKFCzN1vauuuirLyVFGbuwty9xM7t6929q9e7d18uTJK3n7LitXrrTefvtt66OPPrJGjx5tlStXzhXP5f59v/nmG9e5H330UZbicPryyy+tZ555xuratatVunRp1/V79OiR7vOaNWtmAVbjxo3TPL5nzx5rypQp1v33328VKVLE7fteq1Yta/HixZZlmb8TkydPTvPf09vb27rxxhutd9991+3aa9assby9vV3n9e/f/5JxvvHGGxZgVahQwTp16lSGH7fddpsFWE2aNEnzut98843lcDisRo0aWR999JF14MCBS8Zw5swZ65FHHnHFW6ZMmQz9fVuzZo3l7+/vlsynfJ2kpCSrZs2aFmAFBQVZsbGxl7zW8ePHrTlz5lhPPvmkFRwcfMnfCW9vb6thw4bWwIEDrRkzZlgbNmywjh8/ftlYRcRQciSSTyQkJFizZs2ybr/9dqtGjRpWUlJShp4XHh5urVq1ylq1apUVFxeX6niPHj2se++91xo6dKi1cePGS17n+PHjbsmZpz+dz2smT57s+l5UqlTJ+t///pfhf5OMio6OtkaNGmVVqlTpkjfCiYmJlpeXl0eSI8uy0vy02nmzePr06Uxdq3jx4hZg3X///a7EJaOPBg0aWJDxHlJPio2NtSpXrpzqe1CpUqU0ewZSmjhxouv8999/3yPx/PTTT2n+myxfvjzd5916660WYNWtWzfN4yl7NADL4XBYLVq0cCVFF4uJibHee+89q0qVKm7P8/X1tXbt2uV27vnz560xY8ZYgYGBVpEiRayjR49eMs7Bgwdf0c9v06ZNLcBq0KBBmsfPnTuXZk/rxRYvXmxdc801rvdToUKFVO/ncs/38/OzAMvHx8caNmyY69jMmTNd1+3du7dlWZb1zz//WPPnz7emTp1qDR8+3Lr//vutG264wXI4HG7f19KlS1sDBw60duzYYW3bts3q27dvqg9MUj6KFCliVa5c2brpppus0aNHZzh+kYJGyZFIPpTWcJCcsmrVKqtjx47W+fPnbYsht3jllVes//3vf5e9Yc6qxMRE6+zZs2keO3r0qOvmyBPJUWJiouuT7mLFilnNmze33njjDevff//N9LWcN4xPPvlkpp/rvPG96aabMv1cT0g5vKpixYrW008/bf3999+Xfd7bb7/tet6oUaM8Fo+zh9fhcFj16tWzvvrqq8s+p0aNGhZgVatW7ZLn3H///VbVqlWtIUOGWH/99VeGYklKSrLWrl1r9e3b16pUqZL1yCOPXPLc9evXWx9//HG613vhhReylBzdeOONmXrexdauXWtVrVrVlUheyc/68uXLrWLFillLlixx23/ixAnrww8/tMqWLetKuKKioqzatWunmeBUrVrV6tevn/Xjjz+m+XclMTHRCgsLs4YOHWrdeeedVtGiRVNdo2jRotaxY8eu7JshUgA4LCub6viKiEi+tHfvXnx8fLj66qvtDsU2+/btIzIykuuvvz7NIgI5bebMmRQtWpT69et7NJ64uLgMLRCcnnPnzrnWBroSJ0+eJDo62tafudjYWD7//HOeeuopChcufEXXOH36NMWKFUvz2Pnz5/Hz83Ntb968mfvvv58bbriBG2+8kfr163Pbbbdl+t82KSmJnTt3Eh4ezs6dO9mxYwe1a9d2rSslIqkpORIREREREUGlvEVERERERAAlRyIiIiIiIgBkfNW3PCQpKYmDBw9StGjRHFtZW0REREREch/Lsjhz5gzlypXDyyv9vqF8mRwdPHiQChUq2B2GiIiIiIjkEvv3779sYZd8mRwVLVoUMN+AoKAgm6MRERERERG7REdHU6FCBVeOkJ58mRw5h9IFBQUpORIRERERkQxNt1FBBhEREREREZQciYiIiIiIAEqOREREREREgHw65yijEhMTSUhIsDuMfMvX1xdvb2+7wxARERERyZACmRxZlsXhw4c5ffq03aHke8WKFeOqq67SelMiIiIikusVyOTImRiVLl2aQoUK6cY9G1iWRWxsLEePHgWgbNmyNkckIiIiIpK+ApccJSYmuhKjEiVK2B1OvhYYGAjA0aNHKV26tIbYiYiIiEiuVuAKMjjnGBUqVMjmSAoG5/dZc7tEREREJLcrcMmRk4bS5Qx9n0VEREQkryiwyVFeFB8fz19//ZVq//bt25k8efIlnzdy5Eh+//13wAwrjI+PJykpKdviFBERERHJi5Qc5SGLFy+mWbNmnDhxwm2/j48PL7zwAnv27EnzeZZl0alTJ44cOcKSJUsICQmhWLFibg8fHx8++ugjt+c9/vjjXH/99dx5551pPhwOh5IsEREREck3lBzlIV26dOGOO+6gZ8+ebknJ9ddfT79+/dixY4drn2VZWJYFwKuvvkqLFi04c+YM7dq1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mnfkcUqORERERCT/+/775ATi+eehdGl74/GEW24BPz/TVnLkEUqORERERCR/S9lrVKQIvPSSvfF4SkAA1Ktn2irK4BFKjkREREQkf1u2DH77zbRfeAFKlLA1HI9yDq0LD4czZ+yNJR9QciQiIiIi+VfKXqOgIOjf3954PM1ZlCEpKTkBlCum5EhERERE8q9Fi2DTJtPu3x+KF7c3Hk9r3Di5raF1WabkSERERETyp6Sk5HWNihUzQ+rym5Il4frrTVtFGbJMyZGIiIiI5E/z55u5OAADB0JwsL3xZBfnvKOwMLhwwd5Y8jglRyIiIiKS/6TsNSpRAvr2tTee7OScd3T2LGzdam8seZySIxERERHJf775Bv74w7RffhmKFrU3nuyUcjFYzTvKEiVHIiIiIpK/JCbCG2+YdqlS8NxztoaT7a69NnlRW807yhIlRyIiIiKSv8yaBTt3mvYrr0DhwvbGk90cjuShdT//bMqXyxVRciQiIiIi+ceFCzB8uGlfdRX06mVvPDnFObTu4EHYt8/eWPKwTCdHx48fp3LlyuzduzfN461atWLatGmu7TVr1nDDDTdQsmRJxo4d63bu3LlzqVixIuXKlWPWrFluxz755BPKlClDlSpV+PHHHzMbpoiIiIgURF99BX/9ZdqvvgqFCtkbT05x9hyBhtZlQaaSo+PHj9OmTZtLJkYzZsxg+fLlru1jx47Rrl07unXrRlhYGDNmzGDVqlUAbN++ne7duzNkyBCWL1/O0KFD2bVrFwDLly9n4MCBfP7553z11Vf07NmTEydOXOFbFBEREZECISEBRoww7fLl4amn7I0nJ9WtC4GBpq2iDFcsU8lR165deeihh9I8dvLkSQYMGED16tVd+2bMmEG5cuUYMmQI1apVY+jQoUyZMgWAyZMn06xZM3r27EnNmjXp06cP06dPB+DTTz/lscceo3379jRu3Jj27dszf/78K32PIiIiIlIQfPklREaa9muvQUCAvfHkJD8/aNDAtNVzdMUylRxNmjSJvpeoET9gwAA6duxIw4YNXfvCw8Np1qwZDocDgAYNGrBp0ybXsebNm7vOzeixtMTHxxMdHe32EBEREZECJD4e3nzTtK+5Bp54wt547OCcd7R9O5w+bWsoeVWmkqPKlSunuX/VqlX88MMPjB492m1/dHS023OCgoI4ePBglo6lZdSo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iY+PJyQkJNWxzZs3U758+TSfl9FjIiIikoeFhkLnzrBtG8TFwdatZlsJUs6zrOTy3VddBQ88YGs4IrlBlpOjO+64g+joaKZOnQrAyJEjadGiBd7e3rRr145169axcuVKEhISGD16NC1btgSgc+fOzJ49m23bthETE8P48eNdx7p06cKECRM4cOAAR44cYcqUKa5jIiIikocNH26+plgTEYDu3WHYMNi8OfUxyR4//WS+3wC9e8NF0yRECiKHZWX+L5DD4SAyMpJKlSoBsGjRIrp160ZgYCBeXl6sXr2aGjVqADBx4kT69u1LkSJFKFasGGFhYZQpUwaA1157jTFjxhAQEEC1atVYu3YtgYGBWJbFo48+yrx58wC46667WLRokavq3eVER0cTHBxMVFSUhtiJiIjkFvHxUKgQJCWlf94115iqaR06QJMm4OOTE9EVPB07woIFJinavx9KlbI7IpFskZnc4IqSo7QcPnyYTZs20bBhQ0qUKOF2LDIykp07d9KkSROKFCnidiwiIoIDBw7QtGnTVPOKNmzYwNmzZ2natGmGEyNQciQiIpLrHDlibsZTDJt3cTggIADOnUt9LCQE2rY1idI995jkSrLu77+halXTS/fkkzB5st0RiWQbW5Kj3ETJkYiISC6yZQu0a2d6J5wcDnNj7vwaGmqqpS1caHozfvoJEhPdrxMYCC1bmkSpTRu46MNYyYQXX0yeb7R1K9SsaWs4ItlJyZGSIxERkdxh/nx4+GFwLsnRo4dJcEaNgl27oHp1M9eoY0f35504Ad9+axKl5ctT9yp5e5shd87hdxUr5sCbySeio+Hqq+HMGbjrLli50u6IRLKVkiMlRyIiIvayLBg5El5/3Ww7HPDee9C/f+bLRcfGwvffm0Rp0SI4eTL1OXXrJidKNWuqJHV6xo1LXux18WLTCyeSjyk5UnIkIiJin3PnzDyWWbPMdtGiMHs23Hdf1q994QL8/LNJlBYsgH37Up9TubJJkjp2hMaNTS+TGImJcN11yXOOdu0CrywXLxbJ1TKTG+i3QURERDzn4EFo2jQ5MapSBX791TOJEZjKdXfeaebLREaaUtRDh0KtWsnnREbCBx/AHXeY9XuefNL0kMyapcVnv/3WJEYA/fopMRK5iHqORERExDM2bYL27eHAAbPdtCnMnQslS+bM6//9tynoMH8+rFuX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mVsEULSoSYwqVLA3JhEREZFs4LHkaOHChVSpUgUfHx/q1KnDjh07ANi+fTv169enePHivPTSS1iW5XrOmjVruOGGGyhZsiRjnXNb/jN37lwqVqxIuXLlmDVrlqfClCvl5WXml3TsaLZ//hm6dDHlviX/2rUL2reH+Hjw8YG5c6F2bbujEhEREckWHkmO9uzZQ48ePXjnnXc4cOAA1113HT179iQ+Pp62bdtyyy23sHHjRiIiIpg2bRoAx44do127dnTr1o2wsDBmzJjBqlWrAJNQde/enSFDhrB8+XKGDh3Krl27PBGqZIWPD8yaZeYdASxbZnoUEhPtjUuyx5EjZu2ikyfN9uefm6qFIiIiIvmUR5KjHTt28M477/DAAw9QpkwZnn32WTZv3syyZcuIiopi7NixXHvttYwcOZIpU6YAMGPGDMqVK8eQIUOoVq0aQ4cOdR2bPHkyzZo1o2fPntSsWZM+ffowffp0T4QqWeXvD/PnQ6NGZvvrr6FXL1PJTPKPs2fNWkaRkWZ72DDo0cPemERERESymUeSozZt2vD000+7tnft2kW1atUIDw+nYcOGFCpUCIBatWoREREBQHh4OM2aNcPxXxngBg0asGnTJtex5s2bu66X8lha4uPjiY6OdntINipcGJYsgVq1zPbkyfDSS0qQ8osLF6BbN9iwwWw//rhJjkRERETyOY8XZDh//jzvv/8+vXr1Ijo6msqVK7uOORwOvL29OXXqVKpjQUFBHDx4ECDdY2kZNWoUwcHBrkcFTRbPfsWLw4oVULWq2X7/fRg50t6YJOssy1QmXLzYbN99txlOp7WMREREpADweHI0bNgwChcuTM+ePfHx8cHf39/teEBAALGxsamOOfcD6R5Ly+DBg4mKinI99muh0pxRpgysXAlXX222X38dPv7Y3pgka957Dz791LRr1TIFGHx97Y1JREREJIf4ePJiP/74I5988gm//vorvr6+hISEsH37drdzzpw5g5+fHyEhIRxLsZiocz+Q7rG0+Pv7p0rCJIdUrAjffw9NmsDx4/D88xAUBI8+andkklmzZ8OgQaZ99dWmZHdQkL0xiYiIiOQgj/UcRUZG0q1bNz755BNq1KgBQP369QkLC3M7Jz4+npCQkFTHNm/eTPny5dN8Xspjkgtdfz0sX558I/3EE7Bgga0hSSatWZO8jlVQkEmM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",
"text/plain": [
"<Figure size 1000x600 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"pv_time = data[data['behavior_type'] == 'pv'].groupby('hour')['user_id'].count()\n",
"pv_time = pv_time.reset_index().rename(columns={'user_id': 'pv'})\n",
"uv_time = data.groupby('hour')['user_id'].apply(lambda x: x.drop_duplicates().count())\n",
"uv_time = uv_time.reset_index().rename(columns={'user_id': 'uv'})\n",
"x = pv_time['hour']\n",
"y1 = pv_time['pv']\n",
"y2 = uv_time['uv']\n",
"plt.figure(figsize=(10, 6))\n",
"plt.subplot(1, 1, 1)\n",
"plt.plot(x, y1, label='访问量', color='r', linewidth=1.8, marker='o', markersize=4)\n",
"plt.bar(x, y2, label='用户量')\n",
"plt.legend(loc='best')\n",
"plt.title(\"用户一天内各时间段活跃度\", fontsize=24)\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 19,
"id": "c38b5577",
"metadata": {
"pycharm": {
"name": "#%%\n"
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>1</th>\n",
" <th>2268318</th>\n",
" <th>2520377</th>\n",
" <th>pv</th>\n",
" <th>1511544070</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1</td>\n",
" <td>2333346</td>\n",
" <td>2520771</td>\n",
" <td>pv</td>\n",
" <td>1511561733</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1</td>\n",
" <td>2576651</td>\n",
" <td>149192</td>\n",
" <td>pv</td>\n",
" <td>1511572885</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1</td>\n",
" <td>3830808</td>\n",
" <td>4181361</td>\n",
" <td>pv</td>\n",
" <td>1511593493</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>1</td>\n",
" <td>4365585</td>\n",
" <td>2520377</td>\n",
" <td>pv</td>\n",
" <td>1511596146</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>1</td>\n",
" <td>4606018</td>\n",
" <td>2735466</td>\n",
" <td>pv</td>\n",
" <td>1511616481</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>100150801</th>\n",
" <td>999999</td>\n",
" <td>4797808</td>\n",
" <td>11120</td>\n",
" <td>pv</td>\n",
" <td>1512293403</td>\n",
" </tr>\n",
" <tr>\n",
" <th>100150802</th>\n",
" <td>999999</td>\n",
" <td>4613472</td>\n",
" <td>4602841</td>\n",
" <td>pv</td>\n",
" <td>1512293766</td>\n",
" </tr>\n",
" <tr>\n",
" <th>100150803</th>\n",
" <td>999999</td>\n",
" <td>3647364</td>\n",
" <td>2304296</td>\n",
" <td>pv</td>\n",
" <td>1512293792</td>\n",
" </tr>\n",
" <tr>\n",
" <th>100150804</th>\n",
" <td>999999</td>\n",
" <td>1903801</td>\n",
" <td>2304296</td>\n",
" <td>pv</td>\n",
" <td>1512293827</td>\n",
" </tr>\n",
" <tr>\n",
" <th>100150805</th>\n",
" <td>999999</td>\n",
" <td>3696094</td>\n",
" <td>4602841</td>\n",
" <td>pv</td>\n",
" <td>1512293891</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>100150806 rows × 5 columns</p>\n",
"</div>"
],
"text/plain": [
" 1 2268318 2520377 pv 1511544070\n",
"0 1 2333346 2520771 pv 1511561733\n",
"1 1 2576651 149192 pv 1511572885\n",
"2 1 3830808 4181361 pv 1511593493\n",
"3 1 4365585 2520377 pv 1511596146\n",
"4 1 4606018 2735466 pv 1511616481\n",
"... ... ... ... .. ...\n",
"100150801 999999 4797808 11120 pv 1512293403\n",
"100150802 999999 4613472 4602841 pv 1512293766\n",
"100150803 999999 3647364 2304296 pv 1512293792\n",
"100150804 999999 1903801 2304296 pv 1512293827\n",
"100150805 999999 3696094 4602841 pv 1512293891\n",
"\n",
"[100150806 rows x 5 columns]"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import pandas as pd \n",
" \n",
"data = pd.read_csv('UserBehavior.csv')\n",
"# data.head(10)\n",
"# data.info()\n",
"data"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "b178853a",
"metadata": {
"pycharm": {
"name": "#%%\n"
}
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 20,
"id": "48d151ba",
"metadata": {
"pycharm": {
"name": "#%%\n"
}
},
"outputs": [
{
"data": {
"text/plain": [
"Index(['1', '2268318', '2520377', 'pv', '1511544070'], dtype='object')"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data.rename(columns={'收货地址 ': '收货地址', '订单付款时间 ':'订单付款时间'}, inplace=True)\n",
"data.columns"
]
},
{
"cell_type": "code",
"execution_count": 21,
"id": "770760ae",
"metadata": {
"pycharm": {
"name": "#%%\n"
}
},
"outputs": [
{
"ename": "KeyError",
"evalue": "'订单付款时间'",
"output_type": "error",
"traceback": [
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[1;31mKeyError\u001b[0m Traceback (most recent call last)",
"File \u001b[1;32mc:\\Users\\Lenovo\\PycharmProjects\\pythonProject\\.venv\\Lib\\site-packages\\pandas\\core\\indexes\\base.py:3805\u001b[0m, in \u001b[0;36mIndex.get_loc\u001b[1;34m(self, key)\u001b[0m\n\u001b[0;32m 3804\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m-> 3805\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_engine\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget_loc\u001b[49m\u001b[43m(\u001b[49m\u001b[43mcasted_key\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 3806\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mKeyError\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m err:\n",
"File \u001b[1;32mindex.pyx:167\u001b[0m, in \u001b[0;36mpandas._libs.index.IndexEngine.get_loc\u001b[1;34m()\u001b[0m\n",
"File \u001b[1;32mindex.pyx:196\u001b[0m, in \u001b[0;36mpandas._libs.index.IndexEngine.get_loc\u001b[1;34m()\u001b[0m\n",
"File \u001b[1;32mpandas\\\\_libs\\\\hashtable_class_helper.pxi:7081\u001b[0m, in \u001b[0;36mpandas._libs.hashtable.PyObjectHashTable.get_item\u001b[1;34m()\u001b[0m\n",
"File \u001b[1;32mpandas\\\\_libs\\\\hashtable_class_helper.pxi:7089\u001b[0m, in \u001b[0;36mpandas._libs.hashtable.PyObjectHashTable.get_item\u001b[1;34m()\u001b[0m\n",
"\u001b[1;31mKeyError\u001b[0m: '订单付款时间'",
"\nThe above exception was the direct cause of the following exception:\n",
"\u001b[1;31mKeyError\u001b[0m Traceback (most recent call last)",
"Cell \u001b[1;32mIn[21], line 1\u001b[0m\n\u001b[1;32m----> 1\u001b[0m \u001b[38;5;28msum\u001b[39m(\u001b[43mdata\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43m订单付款时间\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m]\u001b[49m\u001b[38;5;241m.\u001b[39misnull())\n",
"File \u001b[1;32mc:\\Users\\Lenovo\\PycharmProjects\\pythonProject\\.venv\\Lib\\site-packages\\pandas\\core\\frame.py:4102\u001b[0m, in \u001b[0;36mDataFrame.__getitem__\u001b[1;34m(self, key)\u001b[0m\n\u001b[0;32m 4100\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mcolumns\u001b[38;5;241m.\u001b[39mnlevels \u001b[38;5;241m>\u001b[39m \u001b[38;5;241m1\u001b[39m:\n\u001b[0;32m 4101\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_getitem_multilevel(key)\n\u001b[1;32m-> 4102\u001b[0m indexer \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcolumns\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget_loc\u001b[49m\u001b[43m(\u001b[49m\u001b[43mkey\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 4103\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m is_integer(indexer):\n\u001b[0;32m 4104\u001b[0m indexer \u001b[38;5;241m=\u001b[39m [indexer]\n",
"File \u001b[1;32mc:\\Users\\Lenovo\\PycharmProjects\\pythonProject\\.venv\\Lib\\site-packages\\pandas\\core\\indexes\\base.py:3812\u001b[0m, in \u001b[0;36mIndex.get_loc\u001b[1;34m(self, key)\u001b[0m\n\u001b[0;32m 3807\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(casted_key, \u001b[38;5;28mslice\u001b[39m) \u001b[38;5;129;01mor\u001b[39;00m (\n\u001b[0;32m 3808\u001b[0m \u001b[38;5;28misinstance\u001b[39m(casted_key, abc\u001b[38;5;241m.\u001b[39mIterable)\n\u001b[0;32m 3809\u001b[0m \u001b[38;5;129;01mand\u001b[39;00m \u001b[38;5;28many\u001b[39m(\u001b[38;5;28misinstance\u001b[39m(x, \u001b[38;5;28mslice\u001b[39m) \u001b[38;5;28;01mfor\u001b[39;00m x \u001b[38;5;129;01min\u001b[39;00m casted_key)\n\u001b[0;32m 3810\u001b[0m ):\n\u001b[0;32m 3811\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m InvalidIndexError(key)\n\u001b[1;32m-> 3812\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mKeyError\u001b[39;00m(key) \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01merr\u001b[39;00m\n\u001b[0;32m 3813\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mTypeError\u001b[39;00m:\n\u001b[0;32m 3814\u001b[0m \u001b[38;5;66;03m# If we have a listlike key, _check_indexing_error will raise\u001b[39;00m\n\u001b[0;32m 3815\u001b[0m \u001b[38;5;66;03m# InvalidIndexError. Otherwise we fall through and re-raise\u001b[39;00m\n\u001b[0;32m 3816\u001b[0m \u001b[38;5;66;03m# the TypeError.\u001b[39;00m\n\u001b[0;32m 3817\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_check_indexing_error(key)\n",
"\u001b[1;31mKeyError\u001b[0m: '订单付款时间'"
]
}
],
"source": [
"sum(data['订单付款时间'].isnull())"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "d21acf79",
"metadata": {
"pycharm": {
"name": "#%%\n"
}
},
"outputs": [],
"source": [
"print(data[data['订单付款时间'].isnull() & data['买家实际支付金额']>0].size) # 查看缺失值是否为拍下订单但是未付款情况\n",
"print(sum(data['订单付款时间'].isnull()) / data.shape[0]) # 查看缺失值与整体数据的比例"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "d79e2277",
"metadata": {
"pycharm": {
"name": "#%%\n"
}
},
"outputs": [],
"source": [
"data.duplicated().sum()"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "2551f804",
"metadata": {
"pycharm": {
"name": "#%%\n"
}
},
"outputs": [],
"source": [
"data.describe()"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "93fce0a0",
"metadata": {
"pycharm": {
"name": "#%%\n"
}
},
"outputs": [],
"source": [
"plt.boxplot(data['总金额'])\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "2a18faf8",
"metadata": {
"pycharm": {
"name": "#%%\n"
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>订单编号</th>\n",
" <th>总金额</th>\n",
" <th>买家实际支付金额</th>\n",
" <th>收货地址</th>\n",
" <th>订单创建时间</th>\n",
" <th>订单付款时间</th>\n",
" <th>退款金额</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>19257</th>\n",
" <td>19258</td>\n",
" <td>188320.0</td>\n",
" <td>0.0</td>\n",
" <td>上海</td>\n",
" <td>2020-02-24 19:35:06</td>\n",
" <td>NaN</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" 订单编号 总金额 买家实际支付金额 收货地址 订单创建时间 订单付款时间 退款金额\n",
"19257 19258 188320.0 0.0 上海 2020-02-24 19:35:06 NaN 0.0"
]
},
"execution_count": 36,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data[data['总金额'] > 175000]\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "81455de3",
"metadata": {
"pycharm": {
"name": "#%%\n"
}
},
"outputs": [],
"source": [
"plt.boxplot(data['买家实际支付金额'])\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "5594d619",
"metadata": {
"pycharm": {
"name": "#%%\n"
}
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>订单编号</th>\n",
" <th>总金额</th>\n",
" <th>买家实际支付金额</th>\n",
" <th>收货地址</th>\n",
" <th>订单创建时间</th>\n",
" <th>订单付款时间</th>\n",
" <th>退款金额</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>3143</th>\n",
" <td>3144</td>\n",
" <td>11400.0</td>\n",
" <td>11400.0</td>\n",
" <td>江苏省</td>\n",
" <td>2020-02-18 09:34:43</td>\n",
" <td>2020-02-18 09:34:53</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13511</th>\n",
" <td>13512</td>\n",
" <td>16065.0</td>\n",
" <td>16065.0</td>\n",
" <td>内蒙古自治区</td>\n",
" <td>2020-02-26 15:41:27</td>\n",
" <td>2020-02-26 15:42:24</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" 订单编号 总金额 买家实际支付金额 收货地址 订单创建时间 \\\n",
"3143 3144 11400.0 11400.0 江苏省 2020-02-18 09:34:43 \n",
"13511 13512 16065.0 16065.0 内蒙古自治区 2020-02-26 15:41:27 \n",
"\n",
" 订单付款时间 退款金额 \n",
"3143 2020-02-18 09:34:53 0.0 \n",
"13511 2020-02-26 15:42:24 0.0 "
]
},
"execution_count": 38,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data[data['买家实际支付金额'] > 6000]"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "9386ff31",
"metadata": {
"pycharm": {
"name": "#%%\n"
}
},
"outputs": [],
"source": [
"plt.boxplot(data['退款金额'])\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "47144d28",
"metadata": {
"pycharm": {
"name": "#%%\n"
}
},
"outputs": [],
"source": [
"data[data['退款金额'] > 2000]"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "a7040399",
"metadata": {
"pycharm": {
"name": "#%%\n"
}
},
"outputs": [],
"source": [
"import numpy as np\n",
"np.sum(data['买家实际支付金额'])\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "fb408ef4",
"metadata": {
"pycharm": {
"name": "#%%\n"
}
},
"outputs": [],
"source": [
"data_area = data.groupby('收货地址').sum()['买家实际支付金额'].sort_values(ascending=False).reset_index()\n",
"\n",
"plt.figure(figsize=(20,8))\n",
"plt.bar(data_area['收货地址'], data_area['买家实际支付金额'],width=0.2)\n",
"plt.xlabel('')\n",
"plt.ylabel('销售额', rotation=0, labelpad=30, fontsize=15)\n",
"plt.title('各省市销售额情况', fontsize=20)\n",
"plt.xticks(rotation = 45)\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "f2a83226",
"metadata": {
"pycharm": {
"name": "#%%\n"
}
},
"outputs": [],
"source": [
"plt.figure(figsize=(20,8),dpi=100)\n",
"plt.hist(data[data['总金额'] < 500]['总金额'])\n",
"plt.xticks(np.arange(0,500,step=25), fontsize=20)\n",
"plt.yticks(fontsize=20)\n",
"plt.xlabel('订单金额',fontsize=20)\n",
"plt.ylabel('订单数',fontsize=20, rotation=0, labelpad=40)\n",
"plt.title('订单金额分布情况', fontsize=25)\n",
"plt.show()\n"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.12.2"
}
},
"nbformat": 4,
"nbformat_minor": 5
}