不管你的數據有多少,用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 機器學習編程!

科技分類資訊推薦

阿里雲通義點金發佈DianJin-R1金融領域推理大模型 - 天天要聞

阿里雲通義點金發佈DianJin-R1金融領域推理大模型

近日,阿里雲通義點金團隊與蘇州大學攜手合作,在金融大語言模型領域推出了突破性的創新成果: DianJin-R1 。這款推理增強型金融大模型,融合了先進的技術和全面的數據支持,專為金融任務而設計。
曝iPhone 18 Pro內測屏下3D人臉識別:蘋果邁入單挖孔屏時代 - 天天要聞

曝iPhone 18 Pro內測屏下3D人臉識別:蘋果邁入單挖孔屏時代

快科技5月4日消息,博主數碼閑聊站爆料,iPhone 18 Pro和iPhone 18 Pro Max在測試屏下3D人臉識別,採用單挖孔屏形態。他還爆料,iPhone 18和iPhone 18 Air仍然是藥丸屏形態。眾所周知,從iPhone X開始,蘋果開啟了劉海屏時代,在這個劉海內,蘋果塞進了原深感攝像頭系統,實現了3D人臉識別,該系統包含了多個精密原件
三款7000元附近RTX 5070筆記本對壘,誰更讓你心動? - 天天要聞

三款7000元附近RTX 5070筆記本對壘,誰更讓你心動?

不得不說,RTX 50系列浪潮來得很快,這麼快就有多款產品在7000元附近了,選擇面很大。當然,這裡的功勞主要是補貼,沒補貼的話,這些本還在9000元高位,但有了補貼後,實際價格也是我們需要正視的。這次,我們就找到三款價格在7000元附近的RTX 5070筆記本,看看哪款讓你心動。第一款,是七彩虹隱星P16 Pro,原價8999元,到...
未來智能駕駛圖鑑:車路協同成主流,道路兩側也安上雷達! - 天天要聞

未來智能駕駛圖鑑:車路協同成主流,道路兩側也安上雷達!

新能源汽車風口下,智能駕駛成為起飛的豬。國內供應鏈發展也十分迅猛,現在10萬級的車也能體驗智駕,那麼在未來,智能駕駛會達到什麼樣的狀態呢?答案是「車路協同」。車端智能是基礎現在帶智駕功能的車都有一定的硬件基礎做支撐,比如毫米波雷達、攝像頭、激光雷達、芯片等,通過這些硬件,可以採集車輛周圍的環境信息和信...
「英偉達已向中國三家企業通報」 - 天天要聞

「英偉達已向中國三家企業通報」

據台灣《工商時報》網站5月3日報道,在針對中國市場的H20芯片遭美國政府禁售後,美國芯片大廠英偉達正加緊開發另一款符合美國出口規定的人工智能(AI)芯片,以繼續保住其在中國的市場份額。
金舟投屏文件輸出目錄設置方法 - 天天要聞

金舟投屏文件輸出目錄設置方法

金舟投屏文件輸出目錄怎麼設置?跟着我來操作。1、 打開金舟投屏應用2、 在金舟投屏窗口,點擊菜單按鈕。3、 在彈出的下拉菜單中,選擇設置選項。4、 進入設置窗口後,選擇點擊文件選項。5、 在文件窗口裡,點擊輸出目錄按鈕,於彈出窗口選擇文件輸出路徑,例如:D:文件保存金舟投屏。6、 點擊關閉即可完成操作(9777180)...
E-鑽文件加密大師:輕鬆加密文件保護數據安全 - 天天要聞

E-鑽文件加密大師:輕鬆加密文件保護數據安全

對電腦文件加密,能保護個人隱私與商業機密,提升重要文件安全性。1、 把重要文件放入一個文件夾,進行加密保護。2、 開啟E-鑽文件加密大師;3、 點擊加密按鈕,選擇要加密的文件夾,然後單擊確定。4、 選擇加密強度與模式;5、 請再次輸入密碼,然後點擊確認。6、 點擊加密文件,輸入密碼後即可打開。(9777179)...