{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"name":"python","version":"3.10.14","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"},"kaggle":{"accelerator":"none","dataSources":[{"sourceId":10445,"databundleVersionId":200747,"sourceType":"competition"}],"dockerImageVersionId":30786,"isInternetEnabled":true,"language":"python","sourceType":"notebook","isGpuEnabled":false}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"code","source":"import pandas as pd\nimport numpy as np\nimport gc","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","execution":{"iopub.status.busy":"2024-10-17T06:54:12.782983Z","iopub.execute_input":"2024-10-17T06:54:12.783545Z","iopub.status.idle":"2024-10-17T06:54:13.262151Z","shell.execute_reply.started":"2024-10-17T06:54:12.783479Z","shell.execute_reply":"2024-10-17T06:54:13.260512Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"def miss_handle(se):\n    if(se.isna().sum()==0):\n        return se\n    if(se.dtypes==\"object\"):\n        vc = se.value_counts()\n        if(vc.iloc[0]/len(se)>0.1):\n            se = se.fillna(-1)\n        else:\n            se = se.fillna(se.mode().iloc[0])\n    else:\n        se = se.fillna(se.mean())\n    return se\n\ndef inf_handle(se):\n    if((se==np.inf).any()):\n        se_ = se.replace(np.inf,np.nan)\n        se = se_.fillna(se_.max())\n    if((se==-np.inf).any()):\n        se_ = se.replace(-np.inf,np.nan)\n        se = se_.fillna(se_.min())\n    return se\n\ndef pre_handle(df):\n    inf_col = df.columns[(df==np.inf).sum()>0]\n    inf_col = inf_col.union(df.columns[(df==-np.inf).sum()>0])\n    df[inf_col] = df[inf_col].apply(inf_handle,axis=0)\n    miss_col = df.columns[df.isna().sum()>0]\n    df[miss_col] = df[miss_col].apply(miss_handle,axis=0)\n    return df","metadata":{"execution":{"iopub.status.busy":"2024-10-17T06:54:13.264971Z","iopub.execute_input":"2024-10-17T06:54:13.265466Z","iopub.status.idle":"2024-10-17T06:54:13.279227Z","shell.execute_reply.started":"2024-10-17T06:54:13.265427Z","shell.execute_reply":"2024-10-17T06:54:13.277746Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"history_dict = pd.read_csv(\"/kaggle/input/elo-merchant-category-recommendation/historical_transactions.csv\")\nnew_dict = pd.read_csv(\"/kaggle/input/elo-merchant-category-recommendation/new_merchant_transactions.csv\")\n\ntransactions = pd.concat((new_dict,history_dict),axis=0)\ndel new_dict\ndel history_dict\n\n# transactions = pre_handle(transactions)\ntransactions[\"purchase_date\"] = pd.to_datetime(transactions[\"purchase_date\"]).apply(lambda x:x.timestamp()-1.5e9)","metadata":{"_kg_hide-input":true,"execution":{"iopub.status.busy":"2024-10-17T06:54:13.281649Z","iopub.execute_input":"2024-10-17T06:54:13.282952Z","iopub.status.idle":"2024-10-17T06:58:34.969184Z","shell.execute_reply.started":"2024-10-17T06:54:13.282876Z","shell.execute_reply":"2024-10-17T06:58:34.967963Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"merchants = pd.read_csv(\"/kaggle/input/elo-merchant-category-recommendation/merchants.csv\")\n\n\nif(len(merchants['merchant_id'].unique())!=len(merchants['merchant_id'])):\n    merchants = merchants.drop_duplicates(keep='last',subset=['merchant_id']).reset_index()\n\n# merchants = pre_handle(merchants)","metadata":{"execution":{"iopub.status.busy":"2024-10-17T06:58:34.970667Z","iopub.execute_input":"2024-10-17T06:58:34.971145Z","iopub.status.idle":"2024-10-17T06:58:37.170087Z","shell.execute_reply.started":"2024-10-17T06:58:34.971096Z","shell.execute_reply":"2024-10-17T06:58:37.168562Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"duplicates_col = transactions.columns[transactions.columns.isin(merchants.columns)]\nduplicates_col = duplicates_col.drop(\"merchant_id\")\nmerchants = merchants.drop(duplicates_col,axis=1)\n\ntransactions = pd.merge(transactions,merchants,how=\"left\",on=\"merchant_id\")\ndel merchants","metadata":{"execution":{"iopub.status.busy":"2024-10-17T06:58:37.173041Z","iopub.execute_input":"2024-10-17T06:58:37.173511Z","iopub.status.idle":"2024-10-17T06:59:14.072252Z","shell.execute_reply.started":"2024-10-17T06:58:37.173467Z","shell.execute_reply":"2024-10-17T06:59:14.071113Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{"trusted":true},"execution_count":null,"outputs":[]}]}