不管你的數據有多少,用python做數據合併就是這麼簡單!

2024年03月09日08:55:04 科技 1947

Python數據分析領域,pandas庫以其強大的數據處理能力而聞名。其中,DataFrame的合併與連接操作是數據整合與分析過程中的關鍵步驟。本文將詳細介紹如何利用Pandas提供的concatmerge方法進行DataFrame的合併與連接,並通過實際代碼示例展示其應用場景。

不管你的數據有多少,用python做數據合併就是這麼簡單! - 天天要聞

使用pd.concat()進行DataFrame的合併

1.水平(橫向)合併

pd.concat()函數可以用於水平方向上拼接多個DataFrame。當DataFrames的列名相同或互補時,可通過此方法實現行的堆疊:

import pandas as pd

# 創建兩個具有相同列名的DataFrame
df1 = pd.DataFrame({'Name': ['John', 'Anna'], 'Age': [28, 30]})
df2 = pd.DataFrame({'Name': ['Peter', 'Linda'], 'Age': [25, 35]})

# 使用pd.concat()進行水平合併
merged_df = pd.concat([df1, df2], ignore_index=True)  # 忽略原索引並生成新索引
print(merged_df)

2.垂直(縱向)合併

當需要根據DataFrame的索引進行合併時,可以通過設置axis=1來實現垂直方向上的合併:

df3 = pd.DataFrame({'Country': ['USA', 'Canada']}, index=['John', 'Anna'])
df4 = pd.DataFrame({'City': ['New York', 'Toronto']}, index=['John', 'Anna'])

# 垂直方向合併
vertical_merged_df = pd.concat([df3, df4], axis=1)
print(vertical_merged_df)

使用pd.merge()進行DataFrame的連接

pd.merge()函數基於指定鍵(key)對DataFrame進行連接操作,適用於具有共同列名或者索引的情況。主要有以下幾種連接類型:

  • 內連接(inner join):默認情況下,pd.merge()執行的是內連接,只保留兩個DataFrame中鍵值匹配的行。
df5 = pd.DataFrame({'Name': ['John', 'Peter'], 'Department': ['Sales', 'IT']})
df6 = pd.DataFrame({'Name': ['John', 'Anna'], 'Salary': [50000, 60000]})

# 內連接
inner_joined_df = pd.merge(df5, df6, on='Name')
print(inner_joined_df)
  • 左連接(left join):保留左側DataFrame的所有記錄,右側DataFrame僅包含與左側鍵值匹配的記錄。
left_joined_df = pd.merge(df5, df6, on='Name', how='left')
print(left_joined_df)
  • 右連接(right join):保留右側DataFrame的所有記錄,左側DataFrame僅包含與右側鍵值匹配的記錄。
right_joined_df = pd.merge(df5, df6, on='Name', how='right')
print(right_joined_df)
  • 全連接(outer join):保留兩個DataFrame中所有記錄,未匹配的鍵值用NaN填充。
outer_joined_df = pd.merge(df5, df6, on='Name', how='outer')
print(outer_joined_df)

進階應用及注意事項

  • 多鍵連接:可以同時指定多個鍵進行連接,只需將鍵名稱以列表形式傳入on參數即可。
  • 連接順序與效率:對於大數據集,連接操作可能會消耗大量計算資源。合理安排連接順序和選擇合適的連接類型能夠有效提升性能。
  • 處理重複鍵值:在進行連接時,如果存在重複鍵值,需考慮如何處理這些重複項,以避免結果集出現冗餘或混淆。

總結

掌握Pandas DataFrame的合併與連接操作是進行複雜數據處理和分析的關鍵技能。無論是Web開發中的API響應集成,還是數據分析項目中的多源數據融合,靈活運用pd.concat()pd.merge()都能顯著提高工作效率,確保數據處理流程的準確性和完整性。

關注我,手把手帶你快速入門 AI 機器學習編程!

科技分類資訊推薦

Nothing 首款頭戴式耳機 Headphone (1) 發佈,復古透明設計 - 天天要聞

Nothing 首款頭戴式耳機 Headphone (1) 發佈,復古透明設計

IT之家 7 月 2 日消息,Nothing 首款頭戴式耳機 —— Nothing Headphone (1) 今日正式發佈。這款耳機延續了該品牌復古、透明的設計風格,摒棄了觸控設計,採用了更復古的物理滾輪和按鍵控制。Nothing Headphone (1) 採用 CNC 鋁製外殼,內部記憶泡沫耳墊可以貼合耳朵。硬件方面,Nothing 與音響品牌 KEF
小米YU7支持車外呼叫小愛開前備箱:三個條件都滿足才能用 - 天天要聞

小米YU7支持車外呼叫小愛開前備箱:三個條件都滿足才能用

快科技7月2日消息,小米YU7上首發了車外小愛同學的功能,在車外有8個麥克風和1個揚聲器。無論在哪個角度,都可以很容易使用語音控車,比如在車外直接讓小愛同學打開前備箱。這也讓很多網友和准車主疑惑,會不會存在安全問題?對此,小米汽車在最新一期問答中表示,出於安全的考量,在車外通過小愛同學打開小米YU7的前備箱,...
小米汽車闢謠YU7交付插隊費:都是假的 - 天天要聞

小米汽車闢謠YU7交付插隊費:都是假的

快科技7月2日消息,小米汽車日前發佈第166集答網友問。對於「網上有人自稱小米汽車交付專員,宣稱可以提前交付車輛,是真的嗎?」小米汽車表示:如有收到類似短訊,請大家切勿相信,更不要涉及金錢交易,以避免經濟損失。涉及類似「提前交付」、「提前交付需轉賬給個人」或「支付插隊費」等信息,請大家一定要仔細甄別。涉...
甜品上市!七彩虹iGameRTX 5050 Ultra顯卡:溫控性能兩開花 - 天天要聞

甜品上市!七彩虹iGameRTX 5050 Ultra顯卡:溫控性能兩開花

據悉,一線顯卡品牌七彩虹的又一甜品級裝備iGameGeForce RTX 5050 Ultra系列顯卡現已正式上架各大電商平台和線下授權零售商!該系列RTX5050顯卡搭載8GBGDDR6高速顯存,2560個CUDACores,配合革命性DLSS4多幀生成技術,3A遊戲全特效暢玩無壓力,內容創作如虎添翼!更配備強勁的散熱系統,性能與溫控雙優表現,讓每一分預算
光追入門但超流暢!映眾RTX5050 8GB曜夜發佈 - 天天要聞

光追入門但超流暢!映眾RTX5050 8GB曜夜發佈

映眾GeForceRTX 5050 8GB曜夜顯卡現已和大家見面。基於NVIDIABlackwell架構打造,以緊湊雙槽設計、高效散熱及AI加速能力,為新一代RTX50系入門級市場注入新活力。作為GeForceRTX 50系列的入門主力,映眾RTX5050 8GB曜夜憑藉NVIDIABlackwell架構的革新設計,在AI與圖形處理效率上有着不俗的性能表現。
從SEO到CRO:搜索優化的時代變革 - 天天要聞

從SEO到CRO:搜索優化的時代變革

在數字營銷領域,搜索引擎優化(SEO)曾經是獲取流量的黃金法則。我們習慣於在搜索引擎輸入關鍵詞,然後結果頁面中尋找答案。但隨着ChatGPT、DeepSeek等生成式AI的崛起,這個延續了二十多年的搜索模式正在被徹底改寫。當AI能夠直接生成完整答案時,傳統的SEO策略突然變得力不從心——這就是為什麼我們需要重新認識AI時代的...
全球可持續交通創新聯盟可持續航空燃料專委會成立 - 天天要聞

全球可持續交通創新聯盟可持續航空燃料專委會成立

7月1日,全球可持續交通創新聯盟的第一個國際性專委會—可持續航空燃料專委會成立。該專委會的成立旨在整合產業鏈力量,構建「技術創新-產業協同-價值共享」三位一體的生態體系,為中國乃至全球能源綠色轉型和航空業低碳未來發展提供「中國方案」。啟動儀式上,中國能建聯合行業頭部企業共同發佈《可持續航空燃料(SAF)產...
張勇出局,蔣凡上位:阿里權力大地震 - 天天要聞

張勇出局,蔣凡上位:阿里權力大地震

英雄難過美人關。京東創始人劉強東,曾因「明州事件」一度沉寂,事隔七年之後才真正重回公眾視野。當年的天貓總裁蔣凡,亦因一場「桃色風波」消失在鎂光燈下,直至近期才鋒芒再現。
2025第25周銷量最高的30款機型曝光 前三隻有一款國產 - 天天要聞

2025第25周銷量最高的30款機型曝光 前三隻有一款國產

【CNMO科技消息】近日,有數碼博主曝光了2025年第25周(6月16日到6月22日)中國智能手機市場上銷量最高的30款機型: 第一名,iPhone 16 Pro 第二名,iPhone 16 Pro Max 第三名,OPPO Reno 14 第四名,iPhone 16 第五名,REDMI K80 第六名,小米15 第七名,華為nova 14 第八名,榮耀40