Pandas 中如何合併資料框?
Pandas 是一個開源的 Python 庫,它使用其強大的資料結構提供高效能的資料操作和分析工具。Pandas 中的資料框是一個二維資料結構,即資料以表格形式在行和列中對齊。
在本文中,我們將瞭解如何在 Python 中合併資料框。我們將使用 merge() 方法。以下是語法
dataframe.merge(right, how, on, left_on, right_on, left_index, right_index, sort, suffixes, copy, indicator, validate)
這裡,
引數 | 值 | 描述 |
---|---|---|
right | 要合併的 DataFrame 或 Series | |
how | 'left' 'right' 'outer' 'inner': 預設 'cross' |
如何合併。 |
on | 字串 列表 |
執行合併的級別 |
left_on | 字串 列表 |
在左側 DataFrame 上執行合併的級別 |
right_on | 字串 列表 |
在右側 DataFrame 上執行合併的級別 |
left_index | True False |
是否使用左側 DataFrame 的索引作為連線鍵 |
right_index | True False |
是否使用右側 DataFrame 的索引作為連線鍵 |
sort | True False |
是否按連線鍵對 DataFrame 進行排序 |
suffixes | 列表 | 要為重疊列新增的字串列表 |
copy | True False |
使用來自右側資料框的鍵,使用 merge() 方法合併資料框
要合併資料框,我們將使用 merge() 方法。how 引數的 right 值僅使用右側框架的鍵,類似於 SQL 右外部聯接。
示例
import pandas as pd # Create Dictionaries dct1 = {'Player':['Steve','David'], 'Age':[29, 25,]} dct2 = {'Player':['Steve','Kane'], 'Age':[31, 27]} # Create DataFrame from Dictionary elements using pandas.dataframe() df1 = pd.DataFrame(dct1) df2 = pd.DataFrame(dct2) print("DataFrame1 = \n",df1) print("\nDataFrame2 = \n",df2) # Combining DataFrames using the merge() method res = df1.merge(df2, how='right') print("\nCombined DataFrames = \n",res)
輸出
DataFrame1 = Player Age 0 Steve 29 1 David 25 DataFrame2 = Player Age 0 Steve 31 1 Kane 27 Combined DataFrames = Player Age 0 Steve 31 1 Kane 27
使用來自左側資料框的鍵,使用 merge() 方法合併資料框
要合併資料框,我們將使用 merge() 方法。how 引數的 left 值僅使用左側框架的鍵,類似於 SQL 左外部聯接。
示例
import pandas as pd # Create Dictionaries dct1 = {'Player':['Steve','David'], 'Age':[29, 25,]} dct2 = {'Player':['Steve','Kane'], 'Age':[31, 27]} # Create DataFrame from Dictionary elements using pandas.dataframe() df1 = pd.DataFrame(dct1) df2 = pd.DataFrame(dct2) print("DataFrame1 = \n",df1) print("\nDataFrame2 = \n",df2) # Combining DataFrames using the merge() method # The how parameter is set to left res = df1.merge(df2, how='left') print("\nCombined DataFrames = \n",res)
輸出
DataFrame1 = Player Age 0 Steve 29 1 David 25 DataFrame2 = Player Age 0 Steve 31 1 Kane 27 Combined DataFrames = Player Age 0 Steve 29 1 David 25
合併來自兩個資料框的鍵的並集的資料框
要合併資料框,我們將使用 merge() 方法。how 引數的 outer 值使用來自兩個框架的鍵的並集,類似於 SQL 全外部聯接。
示例
import pandas as pd # Create Dictionaries dct1 = {'Player':['Steve','David'], 'Age':[29, 25,]} dct2 = {'Player':['Steve','Kane'], 'Age':[31, 27]} # Create DataFrame from Dictionary elements using pandas.dataframe() df1 = pd.DataFrame(dct1) df2 = pd.DataFrame(dct2) print("DataFrame1 = \n",df1) print("\nDataFrame2 = \n",df2) # Combining DataFrames using the merge() method # The how parameter is set to outer i.e. res = df1.merge(df2, how='outer') print("\nCombined DataFrames = \n",res)
輸出
DataFrame1 = Player Age 0 Steve 29 1 David 25 DataFrame2 = Player Age 0 Steve 31 1 Kane 27 Combined DataFrames = Player Age 0 Steve 29 1 David 25 2 Steve 31 3 Kane 27
合併來自兩個資料框的鍵的交集的資料框
要合併資料框,我們將使用 merge() 方法。how 引數的 inner 值使用來自兩個框架的鍵的交集,類似於 SQL 內部聯接。
示例
import pandas as pd # Create Dictionaries dct1 = {'Player':['Steve','David'], 'Age':[29, 25,]} dct2 = {'Player':['Steve','Kane'], 'Age':[31, 27]} # Create DataFrame from Dictionary elements using pandas.dataframe() df1 = pd.DataFrame(dct1) df2 = pd.DataFrame(dct2) print("DataFrame1 = \n",df1) print("\nDataFrame2 = \n",df2) # Combining DataFrames using the merge() method # The how parameter is set to inner res = df1.merge(df2, how='inner') print("\nCombined DataFrames = \n",res)
輸出
DataFrame1 = Player Age 0 Steve 29 1 David 25 DataFrame2 = Player Age 0 Steve 31 1 Kane 27 Combined DataFrames = Empty DataFrame Columns: [Player, Age] Index: []
合併來自兩個資料框的笛卡爾積的資料框
要合併資料框,我們將使用 merge() 方法。how 引數的 cross 值建立來自兩個框架的笛卡爾積
示例
import pandas as pd # Create Dictionaries dct1 = {'Player':['Steve','David'], 'Age':[29, 25,]} dct2 = {'Player':['Steve','Kane'], 'Age':[31, 27]} # Create DataFrame from Dictionary elements using pandas.dataframe() df1 = pd.DataFrame(dct1) df2 = pd.DataFrame(dct2) print("DataFrame1 = \n",df1) print("\nDataFrame2 = \n",df2) # Combining DataFrames using the merge() method # The how parameter is set to cross i.e. cartesian product res = df1.merge(df2, how='cross') print("\nCombined DataFrames = \n",res)
輸出
DataFrame1 = Player Age 0 Steve 29 1 David 25 DataFrame2 = Player Age 0 Steve 31 1 Kane 27Combined DataFrames = Player_x Age_x Player_y Age_y 0 Steve 29 Steve 31 1 Steve 29 Kane 27 2 David 25 Steve 31 3 David 25 Kane 27
廣告