Pandas數據合并與重塑

在數據處理與分析的領域中,Pandas 無疑是一顆璀璨的明星。它提供了豐富且強大的功能,讓我們能夠輕松應對各種復雜的數據操作。其中,數據合并與重塑是兩個至關重要的環節,它們能夠幫助我們整合不同來源的數據,調整數據的結構以滿足分析需求。本文將深入探討 Pandas 中數據合并與重塑的相關知識和技巧。

一、數據合并

在實際應用中,我們經常會遇到需要將多個數據集合并在一起的情況。Pandas 提供了多種數據合并的方法,主要包括 mergeconcatjoin

(一)merge 方法

merge 方法類似于 SQL 中的 JOIN 操作,它可以根據一個或多個鍵將兩個 DataFrame 進行合并。

import pandas as pd# 創建兩個示例 DataFrame
df1 = pd.DataFrame({'key': ['A', 'B', 'C'],'value1': [1, 2, 3]
})df2 = pd.DataFrame({'key': ['A', 'B', 'D'],'value2': [4, 5, 6]
})# 根據 'key' 列進行合并,默認是 inner join
result_inner = pd.merge(df1, df2, on='key')
print(result_inner)# 進行 left join
result_left = pd.merge(df1, df2, on='key', how='left')
print(result_left)# 進行 right join
result_right = pd.merge(df1, df2, on='key', how='right')
print(result_right)# 進行 outer join
result_outer = pd.merge(df1, df2, on='key', how='outer')
print(result_outer)

在上述代碼中,on 參數指定了用于合并的鍵,how 參數指定了合并的方式,包括 inner(內連接)、left(左連接)、right(右連接)和 outer(外連接)。

(二)concat 方法

concat 方法可以將多個 DataFrame 沿著指定的軸進行拼接。

# 創建兩個示例 DataFrame
df3 = pd.DataFrame({'A': [1, 2],'B': [3, 4]
})df4 = pd.DataFrame({'A': [5, 6],'B': [7, 8]
})# 沿著行方向(axis=0)拼接
result_concat_row = pd.concat([df3, df4], axis=0)
print(result_concat_row)# 沿著列方向(axis=1)拼接
result_concat_col = pd.concat([df3, df4], axis=1)
print(result_concat_col)

concat 方法還可以通過 keys 參數為拼接后的 DataFrame 添加層次化索引。

(三)join 方法

join 方法主要用于基于索引的合并,它是 merge 方法的一種簡化形式,適用于索引對齊的情況。

# 設置索引
df1.set_index('key', inplace=True)
df2.set_index('key', inplace=True)# 使用 join 方法進行合并
result_join = df1.join(df2, how='left')
print(result_join)

二、數據重塑

數據重塑是指改變數據的結構,使其更適合進行分析和可視化。Pandas 提供了多種數據重塑的方法,如 stackunstackpivotmelt

(一)stackunstack 方法

stack 方法可以將 DataFrame 的列旋轉為行,而 unstack 方法則是將行旋轉為列。

# 創建一個示例 DataFrame
df5 = pd.DataFrame({'A': [1, 2],'B': [3, 4],'C': [5, 6]
}, index=['X', 'Y'])# 使用 stack 方法
result_stack = df5.stack()
print(result_stack)# 使用 unstack 方法
result_unstack = result_stack.unstack()
print(result_unstack)

(二)pivot 方法

pivot 方法可以將 DataFrame 從長格式轉換為寬格式,類似于 Excel 中的數據透視表操作。

# 創建一個示例 DataFrame
data = {'date': ['2023-01-01', '2023-01-01', '2023-01-02', '2023-01-02'],'category': ['A', 'B', 'A', 'B'],'value': [10, 20, 15, 25]
}
df6 = pd.DataFrame(data)# 使用 pivot 方法
result_pivot = df6.pivot(index='date', columns='category', values='value')
print(result_pivot)

(三)melt 方法

melt 方法與 pivot 方法相反,它可以將 DataFrame 從寬格式轉換為長格式。

# 對 pivot 后的結果進行 melt 操作
result_melt = result_pivot.melt(id_vars='date', var_name='category', value_name='value')
print(result_melt)

三、實際應用場景

(一)數據整合

在數據分析項目中,我們可能會從多個數據源獲取數據,這些數據可能存儲在不同的文件中,具有不同的結構。通過 mergeconcat 方法,我們可以將這些數據整合到一個統一的 DataFrame 中,方便后續的分析。

(二)數據預處理

在進行機器學習建模時,通常需要將數據轉換為特定的格式。例如,某些算法要求輸入數據為二維數組形式,且特征和目標變量需要分開。我們可以使用數據重塑的方法對原始數據進行處理,以滿足算法的要求。

(三)數據可視化

不同的可視化工具對數據格式有不同的要求。通過數據重塑,我們可以將數據轉換為適合可視化的格式,從而更直觀地展示數據的特征和規律。

四、總結

Pandas 的數據合并與重塑功能為我們處理和分析數據提供了強大的支持。通過 mergeconcatjoin 方法,我們可以輕松地將多個數據集合并在一起;而 stackunstackpivotmelt 方法則可以幫助我們調整數據的結構,以滿足不同的分析需求。在實際應用中,我們需要根據具體的問題和數據特點,選擇合適的方法進行數據合并與重塑。希望本文能夠幫助你更好地掌握 Pandas 的這些功能,提升數據處理和分析的能力。如果你有任何疑問或建議,歡迎在評論區留言交流。

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

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

相關文章

Nodejs數據庫單一連接模式和連接池模式的概述及寫法

概述 單一連接模式和連接池模式是數據庫連接的兩種主要方式: 單一連接模式: 優點:實現簡單,適合小型應用缺點:每次請求都需要創建新連接,連接創建和銷毀開銷大,并發性能差,容易出…

將 DeepSeek 集成到 Spring Boot 項目實現通過 AI 對話方式操作后臺數據

文章目錄 項目簡介GiteeMCP 簡介環境要求項目代碼核心實現代碼MCP 服務端(批量注冊 Tool)MCP 客戶端(調用 DeepSeek) DeepSeek APIDockersse 連接ws 連接(推薦)http 連接 Cherry Studio配置模型配置 MCP調用…

【HDFS入門】HDFS性能調優實戰:壓縮與編碼技術深度解析

目錄 1 HDFS性能調優概述 2 HDFS壓縮技術原理與應用 2.1 常見壓縮算法比較 2.2 壓縮流程架構 2.3 壓縮配置實踐 3 列式存儲編碼技術 3.1 ORC與Parquet對比 3.2 ORC文件結構 3.3 Parquet編碼流程 4 性能調優實戰建議 4.1 壓縮選擇策略 4.2 編碼優化技巧 5 性能測試…

HCIP --- OSPF綜合實驗

一、拓撲圖 二、實驗要求 1,R5為ISP,其上只能配置IP地址;R4作為企業邊界路由器,出口公網地址需要通過PPP協議獲取,并進行chap認證。 2,整個0SPF環境IP基于172.16.0.8/16劃分。 3,所有設備均可訪問R5的環…

c++:線程(std::thread)

目錄 從第一性原理出發:為什么需要線程? ? 本質定義: 📌 使用基本語法: 線程之間的“并發”與“并行”的區別 線程安全與數據競爭(Race Condition) 如何讓線程“安全地”訪問數據&#x…

PCL軟件架構

Point Cloud Library (PCL) 采用模塊化設計,提供了豐富的點云處理功能。以下是PCL的核心架構和主要類的詳細介紹。 一、PCL整體架構 PCL的架構可以分為以下幾個主要層次: 數據表示層:基礎點云數據結構和基本操作 算法層:各種點云處理算法實現 I/O層:點云數據的輸入輸出 …

CCLinkIE轉EtherCAT邊緣計算網關構建智能產線:跨協議設備動態組網與數據優化傳輸

一、行業背景 隨著新能源汽車市場爆發式增長,汽車制造企業對產線效率、設備協同性及柔性生產能力的要求顯著提升。傳統產線多采用CC-LinkIEFieldBasic(CCLINKIEFB)協議的三菱PLC控制系統,而新一代伺服驅動設備普遍采用EtherCAT協…

模態雙俠闖江湖:SimTier 分層破局,MAKE 智煉新知

目錄 利用多模態表示提升淘寶展示廣告效果:挑戰、方法與洞察摘要1 引言2 預備知識推薦模型中的ID特征基于ID的模型結構 3 多模態表示的預訓練3.1 語義感知對比學習3.2 預訓練數據集的構建3.3 優化 4 與推薦模型的集成4.1 觀察和見解4.2 方法一:SimTier4.…

基于大模型的下肢靜脈曲張全流程預測與診療方案研究報告

目錄 一、引言 1.1 研究背景與意義 1.2 研究目的與創新點 1.3 研究方法與數據來源 二、下肢靜脈曲張概述 2.1 定義與病理生理 2.2 風險因素與臨床表現 2.3 診斷方法與現有治療手段 三、大模型預測原理與構建 3.1 大模型技術簡介 3.2 預測模型的數據收集與預處理 3.…

跨站腳本(XSS) 的詳細分類、對比及解決方案

以下是 跨站腳本(XSS) 的詳細分類、對比及解決方案: 一、XSS的分類與詳解 1. 反射型XSS(非持久型XSS) 定義:攻擊載荷通過URL參數傳遞,服務器直接返回到頁面中,需用戶主動觸發。 工…

thinkphp實現圖像驗證碼

示例 服務類 app\common\lib\captcha <?php namespace app\common\lib\captcha;use think\facade\Cache; use think\facade\Config; use Exception;class Captcha {private $im null; // 驗證碼圖片實例private $color null; // 驗證碼字體顏色// 默認配置protected $co…

swift-12-Error處理、關聯類型、assert、泛型_

一、錯誤類型 開發過程常見的錯誤 語法錯誤&#xff08;編譯報錯&#xff09; 邏輯錯誤 運行時錯誤&#xff08;可能會導致閃退&#xff0c;一般也叫做異常&#xff09; 2.1 通過結構體 第一步 struct MyError : Errort { var msg: String &#xff5d; 第二步 func divide(_ …

實驗擴充 LED顯示4*4鍵位值

代碼功能概述 鍵盤掃描&#xff1a; 使用 KeyPort&#xff08;定義為 P1&#xff09;作為鍵盤輸入端口。掃描 4x4 矩陣鍵盤&#xff0c;檢測按鍵并返回按鍵編號&#xff08;0~15&#xff09;。 數碼管顯示&#xff1a; 根據按鍵編號&#xff0c;從 SegCode 數組中獲取對應數碼…

從零開始搭建CLIP模型實現基于文本的圖像檢索

目錄 CLIP原理簡介代碼實現參考鏈接 CLIP原理簡介 論文鏈接&#xff0c;源碼鏈接 CLIP模型由OpenAI在2021年提出&#xff0c;利用雙Decoder&#xff08;Dual Encoder&#xff09;的架構來學習圖像和文本之間的對應關系&#xff0c;是多模態大模型的開創之作&#xff0c;為后續許…

熊海cms代碼審計

目錄 sql注入 1. admin/files/login.php 2. admin/files/columnlist.php 3. admin/files/editcolumn.php 4. admin/files/editlink.php 5. admin/files/editsoft.php 6. admin/files/editwz.php 7. admin/files/linklist.php 8. files/software.php 9. files…

[Java微服務組件]注冊中心P3-Nacos中的設計模式1-觀察者模式

在P1-簡單注冊中心實現和P2-Nacos解析中&#xff0c;我們分別實現了簡單的注冊中心并總結了Nacos的一些設計。 本篇繼續看Nacos源碼&#xff0c;了解一下Nacos中的設計模式。 目錄 Nacos 觀察者模式 Observer Pattern觀察者模式總結 Nacos 觀察者模式 Observer Pattern 模式定…

電腦 訪問 github提示 找不到網頁,處理方案

1、找到 本機的 host文件 例如 windows 的 一般在 C:\Windows\System32\drivers\etc\hosts 用管理員身份打開 hosts 文件 如果文件中沒有 github的配置&#xff0c;需要自己手動添加上去&#xff1b; 如果有&#xff0c;則需要 檢查 github.com 與 github.global.ssl.fastly.…

Linux系統中的網絡管理

1.RHEL9版本中&#xff0c;使用nm進行網絡配置&#xff0c;ifcfg不再是網絡配置文件的主存儲&#xff0c;樣式仍然可用&#xff0c;但它不再是NetworkManger存儲新網絡配置文件的默認位置&#xff0c;RHEL以key-file格式在etc/NetworkManger/system-connections/中存儲新的網絡…

AI技術深度解析:從移動芯片到AIoT的全面突破

作為全球無線通信技術和半導體解決方案的重要參與者,高通始終將技術創新作為核心驅動力,在移動通信、物聯網(IoT)、汽車電子、AI計算等領域占據關鍵地位。本文將從其核心產品線、技術突破、應用場景及未來布局四個維度,客觀解析高通的技術積累與行業角色。 一、核心產品線…

使用CS Roofline Toolkit測量帶寬

使用CS Roofline Toolkit測量帶寬 工程下載&#xff1a;使用CS Roofline Toolkit測量帶寬-案例工程文件&#xff0c;也可以按照下面的說明使用git clone下載 目錄 使用CS Roofline Toolkit測量帶寬0、Roofline模型理解1、CS Roofline Toolkit下載1.1、設置代理1.2、git clone下…