{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"pygments_lexer":"ipython3","nbconvert_exporter":"python","version":"3.6.4","file_extension":".py","codemirror_mode":{"name":"ipython","version":3},"name":"python","mimetype":"text/x-python"}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"# This Python 3 environment comes with many helpful analytics libraries installed\n# It is defined by the kaggle/python Docker image: https://github.com/kaggle/docker-python\n# For example, here's several helpful packages to load\n\nimport numpy as np # linear algebra\nimport pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\nimport matplotlib.pyplot as plt\nimport seaborn as sns\n# Input data files are available in the read-only \"../input/\" directory\n# For example, running this (by clicking run or pressing Shift+Enter) will list all files under the input directory\nsns.set(rc={'figure.figsize':(25,10)})\nsns.color_palette(\"Spectral\", as_cmap=True)\nimport os\nfor dirname, _, filenames in os.walk('/kaggle/input'):\n    for filename in filenames:\n        if not \".jpg\" in filename: \n            print(os.path.join(dirname, filename))\n\n# You can write up to 20GB to the current directory (/kaggle/working/) that gets preserved as output when you create a version using \"Save & Run All\" \n# You can also write temporary files to /kaggle/temp/, but they won't be saved outside of the current session","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","execution":{"iopub.status.busy":"2022-03-08T10:52:57.271205Z","iopub.execute_input":"2022-03-08T10:52:57.271554Z","iopub.status.idle":"2022-03-08T10:53:57.724126Z","shell.execute_reply.started":"2022-03-08T10:52:57.271464Z","shell.execute_reply":"2022-03-08T10:53:57.722738Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"df_articles = pd.read_csv(\"/kaggle/input/h-and-m-personalized-fashion-recommendations/articles.csv\")\ndf_tran = pd.read_csv(\"/kaggle/input/h-and-m-personalized-fashion-recommendations/transactions_train.csv\")\ndf_cust = pd.read_csv(\"/kaggle/input/h-and-m-personalized-fashion-recommendations/customers.csv\")","metadata":{"execution":{"iopub.status.busy":"2022-03-08T10:53:57.726354Z","iopub.execute_input":"2022-03-08T10:53:57.726751Z","iopub.status.idle":"2022-03-08T10:55:08.307466Z","shell.execute_reply.started":"2022-03-08T10:53:57.726712Z","shell.execute_reply":"2022-03-08T10:55:08.306019Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Analysis of articles","metadata":{}},{"cell_type":"markdown","source":"Total number of unique values in each column","metadata":{}},{"cell_type":"code","source":"for i in df_articles.columns:\n    print(i,len(df_articles[i].unique()) )","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## Number of articles of each index_name","metadata":{}},{"cell_type":"code","source":"ax = sns.countplot(x=\"index_group_name\", data = df_articles)\na = plt.xticks(rotation=90)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## Number of articles of each product type ","metadata":{}},{"cell_type":"code","source":"ax = sns.countplot(x=\"product_type_name\", data = df_articles)\na = plt.xticks(rotation=90)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## Number of articles of each graphical appearance name ","metadata":{}},{"cell_type":"code","source":"ax = sns.countplot(x=\"graphical_appearance_name\", data = df_articles)\na = plt.xticks(rotation=90)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## Number of articles of each colour","metadata":{}},{"cell_type":"code","source":"ax = sns.countplot(x=\"colour_group_name\", data = df_articles)\na = plt.xticks(rotation=90)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Analysis of customer","metadata":{}},{"cell_type":"code","source":"for i in df_cust.columns:\n    print(i,len(df_cust[i].unique()) )","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"df_cust.isnull().sum()","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"df_cust['FN'] = df_cust['FN'].fillna(0)\ndf_cust['Active'] = df_cust['Active'].fillna(0)\ndf_cust['age'] = df_cust['age'].fillna(0)\ndf_cust['club_member_status'] = df_cust['club_member_status'].fillna(\"No info\")\ndf_cust['fashion_news_frequency'] = df_cust['fashion_news_frequency'].fillna(\"None\")\ndf_cust['fashion_news_frequency'] = df_cust['fashion_news_frequency'].replace(\"NONE\", \"None\")","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## Analysis of club member status","metadata":{}},{"cell_type":"code","source":"ax = sns.countplot(x=\"club_member_status\", data = df_cust)\na = plt.xticks(rotation=90)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## Analysis of fashion news frequency","metadata":{}},{"cell_type":"code","source":"ax = sns.countplot(x=\"fashion_news_frequency\", data = df_cust)\na = plt.xticks(rotation=90)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## Analysis of age","metadata":{}},{"cell_type":"code","source":"ax = sns.countplot(x=\"age\", data = df_cust)\na = plt.xticks(rotation=90)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Analysis of transaction","metadata":{}},{"cell_type":"markdown","source":"## Number of unique values each column has:","metadata":{}},{"cell_type":"code","source":"for i in df_tran.columns:\n    print(i,len(df_tran[i].unique()) )","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## ","metadata":{}},{"cell_type":"markdown","source":"## Analysis of sales each month","metadata":{}},{"cell_type":"code","source":"df_tran[\"Month_year\"] = pd.to_datetime(df_tran.t_dat).dt.to_period('M')\nax = sns.countplot(x=\"Month_year\", data = df_tran)\na = plt.xticks(rotation=90)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## Analysis of sales channel id","metadata":{}},{"cell_type":"code","source":"ax = sns.countplot(x=\"sales_channel_id\", data = df_tran)\na = plt.xticks(rotation=90)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"ax = sns.stripplot(x=\"Month_year\", y = \"price\", data = df_tran)\na = plt.xticks(rotation=90)","metadata":{"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"1. Article csv\n* article_id\n* index_group_name\n* product_type_name\n* graphical_appearance_name\n* colour_group_name\n\n2. transca csv\n* t_dat\n* customer_id \n* article_id\n* price\n* sales_channel_id \n\n3. customer csv\n* customer_id\n* FN \n* Active \n* club_member_status\n* fashion_news_frequency\n* age\n* postal_code","metadata":{}},{"cell_type":"code","source":"df_tran_arti = pd.merge(\n    df_tran, \n    df_articles[[\"article_id\", \"index_group_name\", \"product_type_name\", \"graphical_appearance_name\", \"colour_group_name\"]], \n    how = \"left\", \n    on = \"article_id\"\n)","metadata":{"execution":{"iopub.status.busy":"2022-03-08T10:55:45.100347Z","iopub.execute_input":"2022-03-08T10:55:45.100683Z","iopub.status.idle":"2022-03-08T10:55:54.482666Z","shell.execute_reply.started":"2022-03-08T10:55:45.100647Z","shell.execute_reply":"2022-03-08T10:55:54.481481Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"df_tran_arti.columns","metadata":{"execution":{"iopub.status.busy":"2022-03-08T10:56:52.484065Z","iopub.execute_input":"2022-03-08T10:56:52.484783Z","iopub.status.idle":"2022-03-08T10:56:52.491036Z","shell.execute_reply.started":"2022-03-08T10:56:52.484745Z","shell.execute_reply":"2022-03-08T10:56:52.490307Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Checking sales of product types","metadata":{}},{"cell_type":"code","source":"ax = sns.countplot(x=\"product_type_name\", data = df_tran_arti)\na = plt.xticks(rotation=90)","metadata":{"execution":{"iopub.status.busy":"2022-03-08T10:56:07.180665Z","iopub.execute_input":"2022-03-08T10:56:07.181972Z","iopub.status.idle":"2022-03-08T10:56:52.482553Z","shell.execute_reply.started":"2022-03-08T10:56:07.181879Z","shell.execute_reply":"2022-03-08T10:56:52.481774Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"As we are interseted in september last week, lets check sales of items from 15 sept to 15 octomber for each year","metadata":{"execution":{"iopub.status.busy":"2022-03-08T11:06:05.923913Z","iopub.execute_input":"2022-03-08T11:06:05.924989Z","iopub.status.idle":"2022-03-08T11:06:05.934340Z","shell.execute_reply.started":"2022-03-08T11:06:05.924925Z","shell.execute_reply":"2022-03-08T11:06:05.933200Z"}}},{"cell_type":"code","source":"df_tran_arti.t_dat = pd.to_datetime(df_tran_arti.t_dat)","metadata":{"execution":{"iopub.status.busy":"2022-03-08T11:12:09.422836Z","iopub.execute_input":"2022-03-08T11:12:09.423200Z","iopub.status.idle":"2022-03-08T11:12:15.911360Z","shell.execute_reply.started":"2022-03-08T11:12:09.423159Z","shell.execute_reply":"2022-03-08T11:12:15.910308Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"a = df_tran_arti.loc[((df_tran_arti[\"t_dat\"] > \"2018-09-15\") & (df_tran_arti[\"t_dat\"] < \"2018-10-01\")) |\n                    ((df_tran_arti[\"t_dat\"] > \"2019-09-15\") & (df_tran_arti[\"t_dat\"] < \"2019-10-01\")) |\n                    ((df_tran_arti[\"t_dat\"] > \"2020-09-15\") & (df_tran_arti[\"t_dat\"] < \"2020-10-01\"))]","metadata":{"execution":{"iopub.status.busy":"2022-03-08T11:30:27.704678Z","iopub.execute_input":"2022-03-08T11:30:27.704998Z","iopub.status.idle":"2022-03-08T11:30:28.679535Z","shell.execute_reply.started":"2022-03-08T11:30:27.704966Z","shell.execute_reply":"2022-03-08T11:30:28.678491Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"ax = sns.countplot(x=\"product_type_name\", data = a)\na = plt.xticks(rotation=90)","metadata":{"execution":{"iopub.status.busy":"2022-03-08T11:30:32.000810Z","iopub.execute_input":"2022-03-08T11:30:32.001304Z","iopub.status.idle":"2022-03-08T11:30:38.820359Z","shell.execute_reply.started":"2022-03-08T11:30:32.001267Z","shell.execute_reply":"2022-03-08T11:30:38.819182Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{"execution":{"iopub.status.busy":"2022-03-08T11:30:04.912388Z","iopub.execute_input":"2022-03-08T11:30:04.913432Z","iopub.status.idle":"2022-03-08T11:30:05.208989Z","shell.execute_reply.started":"2022-03-08T11:30:04.913382Z","shell.execute_reply":"2022-03-08T11:30:05.207725Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]}]}