kaggle競賽實戰3

接前文,本文主要做以下幾件事:

1、把前面處理完的幾個表拼成一個大表

2、做特征衍生(把離散特征和連續特征兩兩組合得出)


# In[89]:


#開始拼接表
transaction = pd.concat([new_transaction, history_transaction], axis=0, ignore_index=True)#最后一個參數表示產生新的索引


# In[91]:


transaction['purchase_month'] = transaction['purchase_date'].apply(lambda x:'-'.join(x.split(' ')[0].split('-')[:2]))#先提取出月份和小時


# In[92]:


transaction['purchase_hour_section'] = transaction['purchase_date'].apply(lambda x: x.split(' ')[1].split(':')[0]).astype(int)


# In[95]:


transaction['purchase_month'] = change_object_cols(transaction['purchase_month'].fillna(-1).astype(str))


# In[96]:


cols = ['merchant_id', 'most_recent_sales_range', 'most_recent_purchases_range', 'category_4']


# In[98]:


#做合并
transaction=pd.merge(transaction,merchant[cols],how='left',on='merchant_id')


# In[99]:


numeric_cols = ['purchase_amount', 'installments']


# In[100]:


category_cols = ['authorized_flag', 'city_id', 'category_1','category_3',
? ? ? ? ? ? ? ? ?'merchant_category_id','month_lag','most_recent_sales_range',
? ? ? ? ? ? ? ? ?'most_recent_purchases_range', 'category_4',
? ? ? ? ? ? ? ? ?'purchase_month', 'purchase_hour_section', 'purchase_day']


# In[101]:


id_cols = ['card_id', 'merchant_id']


# In[102]:


#對合成的表再做一下異常值處理
transaction[cols[1:]] = transaction[cols[1:]].fillna(-1).astype(int)


# In[103]:


transaction[category_cols] =transaction[category_cols].fillna(-1).astype(str)


# In[104]:


#導出成csv
transaction.to_csv("d:/transaction_d_pre.csv",index=False)


# In[105]:


del transaction


# In[106]:


gc.collect()


# In[107]:


#開始特征工程,這里用兩兩特征組合的方式,使得一個卡號就一條記錄。具體來說,看各個卡號A特征取值為1時,C特征的和
from datetime import datetime


# In[108]:


#搞個小數據集玩一下
d1={'card_id':[1,2,1,3],'A':[1, 2, 1, 2],
? ? 'B':[2, 1, 2, 2], 'C':[4, 5, 1, 5], 'D':[7, 5, 4, 8]}


# In[110]:


t1=pd.DataFrame(d1)


# In[111]:


numeric_cols = ['C', 'D']
category_cols = ['A', 'B']


# In[112]:


t1


# In[113]:


#創建以id為key的空字典
features={}
card_all=t1['card_id'].values.tolist()#拿出所有catd_id
for card in card_all:
? ? features[card]={}


# In[114]:


features


# In[115]:


columns=t1.columns.tolist()#把所有字段名稱拿出


# In[116]:


columns


# In[129]:


idx = columns.index('card_id')
idx


# In[122]:


#拿出離散型字段的索引值
category_cols_index=[columns.index(col)for col in category_cols]


# In[123]:


numeric_cols_index=[columns.index(col)for col in numeric_cols]


# In[130]:


#開始吧離散字段和連續字段兩兩組合
for i in range(t1.shape[0]):
? ? va=t1.loc[i].values#取出每行的值
? ? card=va[idx]#取出cardid
? ? for cate_ind in category_cols_index:
? ? ? ? for num_ind in numeric_cols_index:
? ? ? ? ? ? col_name = '&'.join([columns[cate_ind], str(va[cate_ind]), columns[num_ind]])
? ? ? ? ? ? features[card][col_name] = features[card].get(col_name, 0) + va[num_ind]
? ??


# In[131]:


features


# In[135]:


#轉化為df
df = pd.DataFrame(features).T.reset_index()#再設置個索引


# In[137]:


cols = df.columns.tolist()


# In[139]:


df.columns = ['card_id'] + cols[1:]#這兩句作用就是把第一列索引名改為card_id

最終輸出的結果是兩兩組合的特征及對應值,如圖所示:

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/16544.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/16544.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/16544.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

JAVA實現圖書管理系統(初階)

一.抽象出對象: 1.要有書架,圖書,用戶(包括普通用戶,管理員用戶)。根據這些我們可以建立幾個包,來把繁雜的代碼分開,再通過一個類來把這些,對象整合起來實現系統。說到整合&#xf…

[數組查找]2.圖解二分查找及其代碼實現

二分查找 二分查找也是一種在數組中查找數據的算法。和線性查找不同,它只能查找已經排好序的數據。二分查找通過比較數組中間的數據與目標數據的大小,可以得知目標數據是在數組的左邊還是右邊。因此,比較一次就可以把查找范圍縮小一半。重復執…

嵌入式進階——舵機控制PWM

🎬 秋野醬:《個人主頁》 🔥 個人專欄:《Java專欄》《Python專欄》 ??心若有所向往,何懼道阻且長 文章目錄 舵機信號線代碼示例初始化PWM初始化UART打印日志初始化外部中斷Extimain函數 舵機最早用于船舶上實現轉向功能,由于可以通過程序連…

MySQL中, 自增主鍵和UUID作為主鍵有什么區別?

首先我們來看看, 存儲自增主鍵和uuid的數據類型 我們知道, mysql中作為主鍵的通常是int類型的數據, 這個 數據從第一條記錄開始, 從1開始主鍵往后遞增, 例如我有100條數據, 那么根據主鍵排序后, 里面的記錄從上往下一次就是1, 2, 3 ... 100, 但是UUID就不一樣了, UUID是根據特殊…

打卡信奧刷題(21)用Scratch圖形化工具信奧P7071 [CSP-J2020] 優秀的拆分

使用2進制進行拆分是比較好的解決方案,畢竟對于大家來說二進制轉換是非常熟的,如果不會可以參考打卡信奧刷題(19)用Scratch圖形化工具信奧B3972 [語言月賽 202405] 二進制 題解 ,輸出的時候再轉換一下輸出,…

M功能-支付平臺(三)

target:離開柬埔寨倒計時-221day 前言 今天周六,但是在柬埔寨還是工作日,想著國內的朋友開始休周末就羨慕呀,記不清在這邊過了多少個周六了,多到我已經習慣了。而且今天技術部還停電了,真的是熱的受不了呀…

c++11:智能指針的種類以及使用場景

指針管理困境 內存釋放,指針沒有置空;內存泄漏;資源重復釋放 怎樣解決? RAII 智能指針種類 shared_ptr 實現原理:多個指針指向同一資源,引用計數清零,再調用析構函數釋放內存。 使用場景…

ASP.NET 代碼審計

ASP.NET 官方文檔 名詞解釋 IIS(Internet Information Services) IIS 是微軟開發的一款 Web 服務器軟件,用于在 Windows 服務器上托管和提供Web應用程序和服務。它支持 HTTP、HTTPS、FTP、SMTP 等多種協議,主要用于&#xff1a…

基于混合Transformer-CNN模型的多分辨率學習方法的解剖學標志檢測

文章目錄 Anatomical Landmark Detection Using a Multiresolution Learning Approach with a Hybrid Transformer-CNN Model摘要方法實驗結果 Anatomical Landmark Detection Using a Multiresolution Learning Approach with a Hybrid Transformer-CNN Model 摘要 精確定位…

跨域計算芯片,一把被忽視的汽車降本尖刀

作者 |王博 編輯 |德新 2019年前后,「中央運算單元區域控制」的架構被提出。基于這一趨勢,從板級的多芯片,到板級的單芯片,集成度越來越高,跨域計算芯片隨之來到聚光燈下。 跨域計算芯片的特點是,與專為智…

Django 里傳參給html文件

第一步:在 urls.py 文件里修改 from django.contrib import admin from django.urls import path from app01 import views # 添加這一行urlpatterns [#path(admin/, admin.site.urls),path(index/, views.index), # 添加這一行 ]第二步:在 settings…

若依框架的配置文件詳解:從數據庫配置到高級定制

若依框架(RuoYi)作為一個基于Spring Boot和MyBatis的快速開發平臺,提供了豐富的配置選項,讓開發者能夠靈活地調整和擴展其功能。配置文件在若依框架中扮演著至關重要的角色,通過合理配置,可以實現對數據庫連…

牛客網刷題 | BC97 回文對稱數

目前主要分為三個專欄,后續還會添加: 專欄如下: C語言刷題解析 C語言系列文章 我的成長經歷 感謝閱讀! 初來乍到,如有錯誤請指出,感謝! 描述 今天牛牛學到了回文…

鎖相環的一些學習筆記--(1)

下圖兩組1.2.3可以對應起來; 一些分析: 1.根據這個可知最后vco_voltage停在0.5v 參考資料: 1. Matlab https://www.bilibili.com/video/BV1bR4y1Z7Xg/?spm_id_from333.1296.top_right_bar_window_history.content.click&vd_source555…

Redis RDB 持久化問題

前言 Redis 是內存數據庫,它將自己的數據儲存在內存里面,如果不想辦法將儲存在內存中的數據保存到磁盤里面,那么一旦服務器進程退出,服務器中的數據也就沒了。 因此,Redis 提供了 RDB 持久化功能,這個功能…

如何將Windows PC變成Wi-Fi熱點?這里提供詳細步驟

序言 Windows 10和Windows 11都有內置功能,可以將你的筆記本電腦(或臺式機)變成無線熱點,允許其他設備連接到它并共享你的互聯網連接。以下是操作指南。 由于Windows中隱藏的虛擬Wi-Fi適配器功能,你甚至可以在連接到另一個Wi-Fi網絡或無線路由器時創建Wi-Fi熱點,通過另…

魯教版七年級數學上冊-筆記

文章目錄 第一章 三角形1 認識三角形2 圖形的全等3 探索三角形全等的條件4 三角形的尺規作圖5 利用三角形全等測距離 第二章 軸對稱1 軸對稱現象2 探索軸對稱的性質4 利用軸對稱進行設計 第三章 勾股定理1 探索勾股定理2 一定是直角三角形嗎3 勾股定理的應用舉例 第四章 實數1 …

實習生在Linux環境下如何日常使用?

那我簡單來說兩個我使用的場景吧 我在搭建我們的測試環境的時候,先上傳jar包到測試環境對應的目錄下,然后呢此時jar包是不可被執行的,所有就有了 chmod x jar包名稱, 接下來,我是用 jps 查看Java的進程,獲取到pid之后…

Kafka 安裝教程和基本操作

一、簡介 Kafka 是最初由 Linkedin 公司開發,是一個分布式、分區的、多副本的、多訂閱者,基于 zookeeper 協調的分布式日志系統(也可以當做 MQ 系統),常見可以用于 web/nginx 日志、訪問日志,消息服務等等…

基于YOLO算法實現網球運動實時分析(附源碼)

大家好,我是小F~ 今天給大家介紹一個計算機視覺實戰的項目。 該項目使用YOLO算法檢測球員和網球,并利用cnn提取球場關鍵點。 進而分析視頻中的網球運動員,測量他們的速度、擊球速度和擊球次數。 使用win10電腦,Python …