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

科技分類資訊推薦

充電時,先插手機還是充電器?這幾種充電方法,手機壞得快! - 天天要聞

充電時,先插手機還是充電器?這幾種充電方法,手機壞得快!

我們每天都在使用手機,但很多人可能不知道正確的手機充電方式。充電時,先插手機還是充電器?手機一定要滿充滿放嗎?這些知識一定要掌握01手機一定要滿充滿放嗎?關於充電,總流傳着一些說法:手機電量耗盡再充電,每次要充滿,這樣才有利於電池保養,隨時充會影響電池壽命。實際上,這些理論都比較過時了。早些年廣泛使...
全球第一台積電,對比大陸第一中芯國際,差距究竟有多大? - 天天要聞

全球第一台積電,對比大陸第一中芯國際,差距究竟有多大?

眾所周知,在全球芯片代工領域,台積電是真正的第一名,不管是技術,還是市場份額都是第一名。而在中國大陸,則中芯國際是第一名,同樣不管是技術,還是市場份額,都是中國大陸的第一名。那麼問題來了,我們拿台積電,來對比一下中芯國際,看看差距到底有多大
OLED不再傷眼!探秘天馬工廠破解“0頻閃”護眼屏誕生之路 - 天天要聞

OLED不再傷眼!探秘天馬工廠破解“0頻閃”護眼屏誕生之路

人類本質上是矛盾的生物。 這一點在對待手機的態度上尤為明顯。家長們一面擔憂手機“傷眼”,頻頻告誡孩子“少玩手機防近視”;一面卻難以割捨掌中方寸帶來的便利與消遣。這種矛盾,使得“護眼”功能成為智能手機不可迴避的核心需求。 然而回溯早期,廠商的所謂“護眼”方案頗為粗淺:無非是將屏幕調至昏暗,或是簡單粗暴地...
“硬核服務”培育更多硬科技企業 - 天天要聞

“硬核服務”培育更多硬科技企業

本報記者 王 政 劉溫馨製圖:汪哲平近日,工業和信息化部等九部門聯合印發《關於加快推進科技服務業高質量發展的實施意見》(以下簡稱《實施意見》),提出以創新驅動、市場導向、融合發展、系統推進、質量為先為原則,壯大服務主體,優化發展生態,提升服
5499元的iPhone16 Pro太火,把國補資金都用完了? - 天天要聞

5499元的iPhone16 Pro太火,把國補資金都用完了?

最近,有很多媒體報道稱,多地的國補出現了暫停申領等情況。比如重慶、湖北、甘肅等地的一些地區,就受到限制,無法申請了。還有一些地區,也做了申請時間的限制,每天定時搶卷,只放出多少,一旦申請的晚了,就沒有了。
5.2C!小米YU7充電速度首次公布:遠超SU7 - 天天要聞

5.2C!小米YU7充電速度首次公布:遠超SU7

6月8日消息,距離7月正式上市發布越來越近,在最新一期小米汽車答網友問(第152集)中,小米汽車公布了YU7的充電速度。談及“小米YU7的充電速度怎麼樣”,官方表示,小米YU7全系搭載800V碳化硅高壓平台,其中小米YU7 Max的最大充電
特斯拉Optimus項目負責人離職,項目前景添變數 - 天天要聞

特斯拉Optimus項目負責人離職,項目前景添變數

來源:環球網 【環球網財經綜合報道】美東時間周五,特斯拉擎天柱人形機器人Optimus項目負責人米蘭·科瓦奇在X平台宣布即將離職。他稱這是“一生中最艱難的決定”,原因是離家太久,需花更多時間陪伴國外家人,強調此決定“與其他任何事情都無關”,
首屆“復新”全球大學生智能影像創作大賽啟動 - 天天要聞

首屆“復新”全球大學生智能影像創作大賽啟動

昨天,首屆“復新”全球大學生智能影像創作大賽在復旦大學新聞學院啟動。本次大賽由上海市人民政府新聞辦公室指導,由復旦大學新聞學院主辦,旨在激發全球大學生的創新思維,將為全球大學生提供一個展示創意與才華的舞台,推動智能影像技術在傳媒領域的應用與發展,為培養適應時代需求的傳媒人才注入新的活力。大賽開設五大...