{"cells":[{"metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true},"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 in \n\nimport numpy as np # linear algebra\nimport pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\nimport featuretools as ft\n# Input data files are available in the \"../input/\" directory.\n# For example, running this (by clicking run or pressing Shift+Enter) will list the files in the input directory\nimport pickle\nimport os\nprint(os.listdir(\"../input\"))\n\n# Any results you write to the current directory are saved as output.","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"d71335861d446718facaff1e58ff626492c7f14c"},"cell_type":"code","source":"new_transactions = pd.read_csv('../input/new_merchant_transactions.csv',parse_dates =[\"purchase_date\"])\nhis_transactions = pd.read_csv('../input/historical_transactions.csv',parse_dates =[\"purchase_date\"])\ntrain = pd.read_csv( '../input/train.csv',parse_dates =[\"first_active_month\"])\ntest = pd.read_csv( '../input/test.csv',parse_dates =[\"first_active_month\"])\nmerchants = pd.read_csv( '../input/merchants.csv')","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"72902b2b73b824da3bf6da0b42f71c73d2de0e90"},"cell_type":"code","source":"merchants = pd.read_csv( '../input/merchants.csv')\nmerchants[merchants.duplicated(subset=\"merchant_id\")].head()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"0200b233547d410da20c4af37909529c39c46ed1"},"cell_type":"code","source":"\nmerchants = merchants.drop_duplicates(subset=\"merchant_id\",keep=\"first\")\nprint(train.shape[0]==train[\"card_id\"].nunique())\nprint(merchants.shape[0]==merchants[\"merchant_id\"].nunique())\n#print(merchants[merchants[\"merchant_id\"].duplicated()])","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"42586e6ff6b4cb48e7564114215ef0e7cf3030d4"},"cell_type":"code","source":"train_his_transactions=train[[\"card_id\"]].merge(his_transactions, how='left', on=\"card_id\")","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"1305bc9a99444061c1a2fd8b896fc9448b5f83de"},"cell_type":"code","source":"print(train_his_transactions.shape)\ntrain_his_transactions.head()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"96f2bdb7927818fa506b9ba6a5f100cfc4ab07d7"},"cell_type":"code","source":"with open('train_his_transactions.pickle', 'wb') as f:\n    pickle.dump(train_his_transactions, f)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"80631a0a5931a80c1b070ce48d62e0b229ef16a2"},"cell_type":"code","source":"with open('train_his_transactions.pickle', 'rb') as f:\n    train_his_transactions = pickle.load(f)","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"021a88416963a503f08df7060015acaf19f417ed"},"cell_type":"markdown","source":"**subsample his transactions**"},{"metadata":{"trusted":true,"_uuid":"622b8bbd8aef276fa1fcc5d0e8e5a012a08f92e9"},"cell_type":"code","source":"train_his_transactions=train_his_transactions.loc[np.random.choice(train_his_transactions.index, 1000000, replace=False)]","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"6a9afe17e4997416c6a513a192fb9b97889f0ac3"},"cell_type":"code","source":"print(train_his_transactions.shape)\ntrain_his_transactions.head()","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"6b23514948d560a419d36b47eeb68941cc503038"},"cell_type":"markdown","source":"**one hot encode**"},{"metadata":{"trusted":true,"_uuid":"7e1eb80be161c1ea20a2d7106d3293b87f99f012"},"cell_type":"code","source":"authorized_flag = pd.get_dummies(train_his_transactions['authorized_flag'])\nauthorized_flag.columns = ['authorized_flag_N', 'authorized_flag_Y']\ntrain_his_transactions=train_his_transactions.drop(['authorized_flag'], axis=1)\ntrain_his_transactions=pd.concat([train_his_transactions, authorized_flag], axis=1)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"f23e6b7aab24bf58b5181aa36e3b9060cea20936"},"cell_type":"code","source":"train_his_transactions.head()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"4965079b4e8576bd215b0fb68f6fd8b8e2620615"},"cell_type":"code","source":"category_1 = pd.get_dummies(train_his_transactions['category_1'])\n#category_1.head()\ncategory_1.columns = ['category_1_N', 'category_1_Y']\ntrain_his_transactions=train_his_transactions.drop(['category_1'], axis=1)\ntrain_his_transactions=pd.concat([train_his_transactions, category_1], axis=1)\ntrain_his_transactions.head()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"3bdd4d188a5cdf4f97fe6e776b79686123e98de8"},"cell_type":"code","source":"category_2 = pd.get_dummies(train_his_transactions['category_2'])\n#category_2.head()\ncategory_2.columns = ['category_2_1', 'category_2_2',\"category_2_3\",\"category_2_4\",\"category_2_5\"]\ntrain_his_transactions=train_his_transactions.drop(['category_2'], axis=1)\ntrain_his_transactions=pd.concat([train_his_transactions, category_2], axis=1)\ntrain_his_transactions.head()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"fadc00ba9e9165ff85745bb27a3f32f357a8b4cb"},"cell_type":"code","source":"category_3 = pd.get_dummies(train_his_transactions['category_3'])\n#category_3.head()\ncategory_3.columns = ['category_3_A', 'category_3_B',\"category_3_C\"]\ntrain_his_transactions=train_his_transactions.drop(['category_3'], axis=1)\ntrain_his_transactions=pd.concat([train_his_transactions, category_3], axis=1)\ntrain_his_transactions.head()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"930f31c7da97d160241af456f775d01fe23ca6d3"},"cell_type":"code","source":"with open('train_his_transactions.pickle', 'wb') as f:\n    pickle.dump(train_his_transactions, f)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"e73b8d9b12083f2e7a801dd18f15f024ce319b4d"},"cell_type":"code","source":"with open('train_his_transactions.pickle', 'rb') as f:\n    train_his_transactions = pickle.load(f)","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"1c548e48b5fdd41a85447fd94a75f000fdbcafd7"},"cell_type":"markdown","source":"## merge with merchants (X : his transaction, Y : merchant)"},{"metadata":{"trusted":true,"_uuid":"51ceeb6c911e417b83b0100cd619c7959d91c0dd"},"cell_type":"code","source":"train_his_transactions.head()\ntrain_his_transactions.shape","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"0bf9fa02be467f850bfd9c1d393cd607c78a19d3"},"cell_type":"code","source":"train_his_transactions_mer = train_his_transactions.merge(merchants,how=\"left\",on=\"merchant_id\")\ntrain_his_transactions_mer.shape","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"b400b2ab92a256e5db5e0c0a7d3db93e286172a3"},"cell_type":"code","source":"train_his_transactions_mer.head()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"5c177c373fb5860685a1c156f3e09490fef37baf"},"cell_type":"code","source":"category_1 = pd.get_dummies(train_his_transactions_mer['category_1'])\n#category_1.head()\ncategory_1.columns = ['category_1_N_mer', 'category_1_Y_mer']\ntrain_his_transactions_mer=train_his_transactions_mer.drop(['category_1'], axis=1)\ntrain_his_transactions_mer=pd.concat([train_his_transactions_mer, category_1], axis=1)\ntrain_his_transactions_mer.head()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"bb4e46b225f6cda9b6b4fb1503c027f4161b4c44"},"cell_type":"code","source":"category_2 = pd.get_dummies(train_his_transactions_mer['category_2'])\n#category_2.head()\ncategory_2.columns = ['category_2_1_mer', 'category_2_2_mer',\"category_2_3_mer\",\"category_2_4_mer\",\"category_2_5_mer\"]\ntrain_his_transactions_mer=train_his_transactions_mer.drop(['category_2'], axis=1)\ntrain_his_transactions_mer=pd.concat([train_his_transactions_mer, category_2], axis=1)\ntrain_his_transactions_mer.head()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"a6dccc7c2b03a212997fc4412a3622bf00dc91f2"},"cell_type":"code","source":"category_4 = pd.get_dummies(train_his_transactions_mer['category_4'])\n#category_1.head()\ncategory_4.columns = ['category_4_N_mer', 'category_4_Y_mer']\ntrain_his_transactions_mer=train_his_transactions_mer.drop(['category_4'], axis=1)\ntrain_his_transactions_mer=pd.concat([train_his_transactions_mer, category_4], axis=1)\ntrain_his_transactions_mer.head()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"b2798cf8f28a09767f8d5a9fcd0a6dd47cb85d8c"},"cell_type":"code","source":"with open('train_his_transactions_mer.pickle', 'wb') as f:\n    pickle.dump(train_his_transactions_mer, f)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"7076743bda443116d5609632bb892d98c2b50a33"},"cell_type":"code","source":"with open('train_his_transactions_mer.pickle', 'rb') as f:\n    train_his_transactions_mer = pickle.load(f)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"d1dd92483637a6b7ab8d410cfe0d39e882829f8f"},"cell_type":"code","source":"train_his_transactions_mer.head()","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"9a74b367cd0e657f29690e3991f027259325b1cb"},"cell_type":"markdown","source":"## same for new transaction"},{"metadata":{"trusted":true,"_uuid":"3f4d4691840aefc3db8aa1d7f01b47b25bad5c94"},"cell_type":"code","source":"#inner join (some training card id is not in new_transactions,delete these)\ntrain_new_transactions=train[[\"card_id\"]].merge(new_transactions, how='inner', on=\"card_id\")","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"89d3eaa65b4748f1949f8d0e3783952f6edafc3b"},"cell_type":"code","source":"print(train_new_transactions.shape)\ntrain_new_transactions.head()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"bdf2527be1996f1afbc06174bac54a55700b1d8a"},"cell_type":"code","source":"train_new_transactions.columns=[\"new_trans_\" + str(col) for col in train_new_transactions.columns]","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"803d006d7386a5fa5390418aa5b6fda3dc4c22f7"},"cell_type":"code","source":"merchants.columns=[\"merchants_\" + str(col) for col in merchants.columns] ","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"ebf6be47adfd5f75738684ef55f93ffbecae5565"},"cell_type":"code","source":"#drop merchants with same merchant id,return the first one\n#merchants.drop_duplicates(subset=\"merchants_merchant_id\",keep=\"first\",inplace=True)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"286cb98176c68ea6ee8eef2245590f6d5edead5b"},"cell_type":"code","source":"merchants.head()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"3c5627a747c55a9165e7e04f89cc4fcbe74916a4"},"cell_type":"code","source":"merge_new_trans_merchants=pd.merge(train_new_transactions,merchants,how=\"left\",left_on=\"new_trans_merchant_id\",right_on=\"merchants_merchant_id\")","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"d8ca1adeb2709a5895a002263968b39ddb1e1e94"},"cell_type":"code","source":"merge_new_trans_merchants['new_trans_authorized_flag'] = merge_new_trans_merchants['new_trans_authorized_flag'].apply(lambda x: 1 if x == 'Y' else 0)\nmerge_new_trans_merchants['new_trans_category_1'] = merge_new_trans_merchants['new_trans_category_1'].apply(lambda x: 1 if x == 'Y' else 0)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"08e51e02250f5baac119797e32dec92b657254d7"},"cell_type":"code","source":"autorized_card_rate = merge_new_trans_merchants.groupby(['new_trans_card_id'])['new_trans_authorized_flag'].mean()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"a79912bfbed931ad1c8bc13e3fa2740fad207557"},"cell_type":"code","source":"new_trans_cate_1_rate_Y = merge_new_trans_merchants.groupby(['new_trans_card_id'])['new_trans_category_1'].mean()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"9a7e0c0d16f6805e4f0d6efd4ab0dfe6d61d3fc1"},"cell_type":"code","source":"#create dummy variable for new_trans_category_2\nmerge_new_trans_merchants['new_trans_category_2_1'] = merge_new_trans_merchants['new_trans_category_2'].apply(lambda x: 1 if x == 1 else 0)\nmerge_new_trans_merchants['new_trans_category_2_2'] = merge_new_trans_merchants['new_trans_category_2'].apply(lambda x: 1 if x == 2 else 0)\nmerge_new_trans_merchants['new_trans_category_2_3'] = merge_new_trans_merchants['new_trans_category_2'].apply(lambda x: 1 if x == 3 else 0)\nmerge_new_trans_merchants['new_trans_category_2_4'] = merge_new_trans_merchants['new_trans_category_2'].apply(lambda x: 1 if x == 4 else 0)\nmerge_new_trans_merchants['new_trans_category_2_5'] = merge_new_trans_merchants['new_trans_category_2'].apply(lambda x: 1 if x == 5 else 0)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"bfc2bd8f0a7d28e79956bedbcc1ac1ca577cd538"},"cell_type":"code","source":"#calculate mean of each category in cate_2 group by card_id\ncate_2_1_rate = merge_new_trans_merchants.groupby(['new_trans_card_id'])['new_trans_category_2_1'].mean()\ncate_2_2_rate = merge_new_trans_merchants.groupby(['new_trans_card_id'])['new_trans_category_2_2'].mean()\ncate_2_3_rate = merge_new_trans_merchants.groupby(['new_trans_card_id'])['new_trans_category_2_3'].mean()\ncate_2_4_rate = merge_new_trans_merchants.groupby(['new_trans_card_id'])['new_trans_category_2_4'].mean()\ncate_2_5_rate = merge_new_trans_merchants.groupby(['new_trans_card_id'])['new_trans_category_2_5'].mean()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"201e9fa28ce3c571ef3a33fb7c45d4f142688acd"},"cell_type":"code","source":"#create dummy variable for new_trans_category_3\nmerge_new_trans_merchants['new_trans_category_3_A'] = merge_new_trans_merchants['new_trans_category_3'].apply(lambda x: 1 if x == \"A\" else 0)\nmerge_new_trans_merchants['new_trans_category_3_B'] = merge_new_trans_merchants['new_trans_category_3'].apply(lambda x: 1 if x == \"B\" else 0)\nmerge_new_trans_merchants['new_trans_category_3_C'] = merge_new_trans_merchants['new_trans_category_3'].apply(lambda x: 1 if x == \"C\" else 0)\n","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"5b60271966c782e91dc04144999c341a374a37a7"},"cell_type":"code","source":"#calculate mean of each category in cate_3 group by card_id\ncate_3_A_rate = merge_new_trans_merchants.groupby(['new_trans_card_id'])['new_trans_category_3_A'].mean()\ncate_3_B_rate = merge_new_trans_merchants.groupby(['new_trans_card_id'])['new_trans_category_3_B'].mean()\ncate_3_C_rate = merge_new_trans_merchants.groupby(['new_trans_card_id'])['new_trans_category_3_C'].mean()\n","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"9a6c6a8e07f5dc973e36613f1e848b6137316736"},"cell_type":"code","source":"#create dummy variable for merchant_category_1\nmerge_new_trans_merchants['merchants_category_1'] = merge_new_trans_merchants['merchants_category_1'].apply(lambda x: 1 if x == \"Y\" else 0)\n","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"03c5b610e60a10dcad3b15b953c1c5718a0213d0"},"cell_type":"code","source":"#calculate mean of each category in merchant_cate_1 group by card_id\nmerchant_cate_1_Y_rate = merge_new_trans_merchants.groupby(['new_trans_card_id'])['merchants_category_1'].mean()\n","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"887f192ed4044e6bb503fa383be2c69b7ed41cd8"},"cell_type":"code","source":"#create dummy variable for merchants_category_2\nmerge_new_trans_merchants['merchants_category_2_1'] = merge_new_trans_merchants['merchants_category_2'].apply(lambda x: 1 if x == 1 else 0)\nmerge_new_trans_merchants['merchants_category_2_2'] = merge_new_trans_merchants['merchants_category_2'].apply(lambda x: 1 if x == 2 else 0)\nmerge_new_trans_merchants['merchants_category_2_3'] = merge_new_trans_merchants['merchants_category_2'].apply(lambda x: 1 if x == 3 else 0)\nmerge_new_trans_merchants['merchants_category_2_4'] = merge_new_trans_merchants['merchants_category_2'].apply(lambda x: 1 if x == 4 else 0)\nmerge_new_trans_merchants['merchants_category_2_5'] = merge_new_trans_merchants['merchants_category_2'].apply(lambda x: 1 if x == 5 else 0)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"19f5c80f6fb4adcd9d54bbf9699e1b0bc927da44"},"cell_type":"code","source":"#calculate mean of each category in merchant cate_2 group by card_id\nmerchants_cate_2_1_rate = merge_new_trans_merchants.groupby(['new_trans_card_id'])['merchants_category_2_1'].mean()\nmerchants_cate_2_2_rate = merge_new_trans_merchants.groupby(['new_trans_card_id'])['merchants_category_2_2'].mean()\nmerchants_cate_2_3_rate = merge_new_trans_merchants.groupby(['new_trans_card_id'])['merchants_category_2_3'].mean()\nmerchants_cate_2_4_rate = merge_new_trans_merchants.groupby(['new_trans_card_id'])['merchants_category_2_4'].mean()\nmerchants_cate_2_5_rate = merge_new_trans_merchants.groupby(['new_trans_card_id'])['merchants_category_2_5'].mean()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"dcb2b08dfea7c215933a243801b95a3bb5b82bf3"},"cell_type":"code","source":"merge_new_trans_merchants['merchants_category_4'] = merge_new_trans_merchants['merchants_category_4'].apply(lambda x: 1 if x == \"Y\" else 0)\nmerchant_cate_4_Y_rate = merge_new_trans_merchants.groupby(['new_trans_card_id'])['merchants_category_4'].mean()\n","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"3550833f4a751c8af2496d4494db78a5ac07c861"},"cell_type":"code","source":"new_trans_merchants_by_card_id={\n    \"authorized_card_rate\":autorized_card_rate,\n    \"new_trans_category_1_rate_Y\":new_trans_cate_1_rate_Y,\n    \"new_trans_category_2_1_rate\":cate_2_1_rate,\n    \"new_trans_category_2_2_rate\":cate_2_2_rate,\n    \"new_trans_category_2_3_rate\":cate_2_3_rate,\n    \"new_trans_category_2_4_rate\":cate_2_4_rate,\n    \"new_trans_category_2_5_rate\":cate_2_5_rate,\n    \"new_trans_category_3_A_rate\":cate_3_A_rate,\n    \"new_trans_category_3_B_rate\":cate_3_B_rate,\n    \"new_trans_category_3_C_rate\":cate_3_C_rate,\n    \"merchants_category_1_Y_rate\":merchant_cate_1_Y_rate,\n    \"merchants_category_2_1_rate\":merchants_cate_2_1_rate,\n    \"merchants_category_2_2_rate\":merchants_cate_2_2_rate,\n    \"merchants_category_2_3_rate\":merchants_cate_2_3_rate,\n    \"merchants_category_2_4_rate\":merchants_cate_2_4_rate,\n    \"merchants_category_2_5_rate\":merchants_cate_2_5_rate,\n    \"merchants_category_4_Y_rate\":merchant_cate_4_Y_rate\n}","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"860cbea27a2d7830642d68a4728f434286b754c8"},"cell_type":"code","source":"new_trans_merchants_by_card_id_df=pd.DataFrame(new_trans_merchants_by_card_id)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"920c6526c76ebf00b3a886305c5b725b8bcd71da"},"cell_type":"code","source":"new_trans_merchants_by_card_id_df=new_trans_merchants_by_card_id_df.reset_index()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"be67ce3d61df23fa4db8d34f5d627d8ef9b2ee01"},"cell_type":"code","source":"new_trans_merchants_by_card_id_df.head()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"35730fa2b0105383eb64695e48718385eee27157"},"cell_type":"code","source":"with open('new_trans_merchants_by_card_id_df.pickle', 'wb') as f:\n    pickle.dump(new_trans_merchants_by_card_id_df, f)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"95cda33d8d1cedf9ce0286e73d785a0354953980","scrolled":true},"cell_type":"code","source":"with open('new_trans_merchants_by_card_id_df.pickle', 'rb') as f:\n    new_trans_merchants_by_card_id_df = pickle.load(f)","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"e9d62f096fd1ee88f7453fbc78ff0a3c1e05eae2"},"cell_type":"markdown","source":"## Automated Feature Engineering"},{"metadata":{"trusted":true,"_uuid":"d311c6d6ac8564550a51e63731791c47125c1c9b"},"cell_type":"code","source":"es = ft.EntitySet(id = 'card')\nes = es.entity_from_dataframe(entity_id = 'train', dataframe = train,index = 'card_id')\n","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"682cd31f40c7306b0d5950ce508528c99b4742d4"},"cell_type":"code","source":"es = es.entity_from_dataframe(entity_id = 'train_his_transactions_mer', \n                              dataframe = train_his_transactions_mer,\n                              make_index = True,\n                              index = \"train_his_transactions_mer_id\")","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"7c856e7119cf825eb35d245619744fd00a93e997"},"cell_type":"code","source":"es = es.entity_from_dataframe(entity_id = 'new_trans_merchants_by_card_id_df', \n                              dataframe = new_trans_merchants_by_card_id_df,\n                              make_index = True,\n                              index = \"new_trans_merchants_by_card_id_df_id\")","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"390995076c03a3af17b22c13c854ba5c0419899d"},"cell_type":"code","source":"new_trans_merchants_by_card_id_df.head()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"ef5907730153110d16eee4b4c91a8cbb69225353"},"cell_type":"code","source":"train_his_transactions_mer.head()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"f75feb4c72993d6b2dfc6672f738276e0900b144"},"cell_type":"code","source":"train.head()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"4f87d32f84899531a0b06381c41fe669daa9177b"},"cell_type":"code","source":"r_train_his = ft.Relationship(es['train']['card_id'],\n                                   es['train_his_transactions_mer']['card_id'])\nr_train_new = ft.Relationship(es['train']['card_id'],\n                                    es['new_trans_merchants_by_card_id_df']['new_trans_card_id'])\n\n# Add the relationship to the entity set\nes = es.add_relationship(r_train_his)\nes = es.add_relationship(r_train_new)\nes","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"821a3b96b1a723f60f1837825c98dc9c9688f517"},"cell_type":"code","source":"# features, feature_names = ft.dfs(entityset=es, target_entity='train', \n#                                  max_depth = 2,\n#                                  agg_primitives = ['mean', 'max', 'percent_true', 'last'],\n#                                  trans_primitives = ['years', 'month', 'subtract', 'divide'])\n\n# with open('features.pickle', 'wb') as f:\n#     pickle.dump([features, feature_names], f)\n\n# features.head()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"c9ee429df69f12cbf3d0dcb589bb6c2b3cfdc806"},"cell_type":"code","source":"dic = pd.read_excel('../input/Data_Dictionary.xlsx', sheet_name='train')\ndic","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"scrolled":true,"_uuid":"7b50129e92d36e76b77204ac222182fd0cc7e20e"},"cell_type":"code","source":"# with open('features.pickle', 'wb') as f:\n#     pickle.dump([features, feature_names], f)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"04c74244dd50a82cfd53b5ea9dd7dcd0118db124"},"cell_type":"code","source":"e = pd.read_excel('../input/Data_Dictionary.xlsx', sheet_name='history')\ne","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"_uuid":"31ac328573707c676afdec7899336de3364f52ea"},"cell_type":"code","source":"","execution_count":null,"outputs":[]}],"metadata":{"kernelspec":{"display_name":"Python 3","language":"python","name":"python3"},"language_info":{"name":"python","version":"3.6.6","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"}},"nbformat":4,"nbformat_minor":1}