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

科技分類資訊推薦

引領科技豪華MPV新風尚 第二代騰勢D9西安車展亮相 - 天天要聞

引領科技豪華MPV新風尚 第二代騰勢D9西安車展亮相

兼具宜商氣度與家用溫情的科技豪華旗艦MPV,第二代騰勢D9迎來西安地區正式亮相。新車依託全球新能源MPV冠軍底蘊,以第二代刀片電池、雙閥雲輦-C、天神之眼5.0智駕等核心技術全面升級,兼顧商務體面與家庭舒適,為西北高端用戶帶來一站式全能出行解決方案。
採購禁入!科華數據材料造假被拒門外 - 天天要聞

採購禁入!科華數據材料造假被拒門外

本報(chinatimes.net.cn)記者胡雅文 北京報道這家趕上AI算力風口的公司,因投標材料造假,被相關採購方列入禁入名單兩年,其此前提出的複議申請也被正式駁回。相關採購平台近日發布公告,明確駁回科華數據股份有限公司(下稱「科華數據」,002335.SZ)此前提交的複議申請。早在一年前,科華數據已被認定在「信息通信樞紐...
快評樂道L80:15萬元級買大五座,這波值得沖? - 天天要聞

快評樂道L80:15萬元級買大五座,這波值得沖?

日前,樂道L80正式發布並開啟預售,其整車購買預售價為24.58萬元起,租電購買預售價則低至15.98萬元起。面對大型SUV市場「細分再細分」之競爭趨勢,這款樂道年度重磅新車都有哪些優勢?又能否成為「大五座SUV革新之作」?下面,圈哥就帶大家全方位感受。
成都直擊凱威德:純電全尺寸SUV的張揚與大氣 - 天天要聞

成都直擊凱威德:純電全尺寸SUV的張揚與大氣

4月22日,凱迪拉克以奧斯卡級盛典規格,將上海保利大劇院點亮為璀璨舞台,在品牌代言人倪妮與全場嘉賓的共同見證下,凱迪拉克全尺寸純電公路旗艦——凱威德耀然上市。新車共推出長續航四驅Pro、高性能四驅Ultra兩款配置,官方售價區間為46.88萬-50.88萬元。