在Python中,pandas
庫提供了強大的數據處理功能,其中concat
和merge
是兩個常用的函數,用于數據框(DataFrame)的合并操作。本文將詳細介紹這兩個函數的使用方法。
concat
函數concat
函數用于沿指定軸將多個數據框連接在一起。它可以沿行(axis=0)或列(axis=1)進行連接。
import pandas as pd
# 創建兩個數據框
df1 = pd.DataFrame({'A': ['A0', 'A1', 'A2'],
'B': ['B0', 'B1', 'B2']})
df2 = pd.DataFrame({'A': ['A3', 'A4', 'A5'],
'B': ['B3', 'B4', 'B5']})
# 沿行連接
result = pd.concat([df1, df2], axis=0)
print(result)
輸出結果:
A B
0 A0 B0
1 A1 B1
2 A2 B2
0 A3 B3
1 A4 B4
2 A5 B5
# 沿列連接
result = pd.concat([df1, df2], axis=1)
print(result)
輸出結果:
A B A B
0 A0 B0 A3 B3
1 A1 B1 A4 B4
2 A2 B2 A5 B5
默認情況下,concat
會保留原始索引??梢酝ㄟ^設置ignore_index=True
來重置索引。
# 重置索引
result = pd.concat([df1, df2], ignore_index=True)
print(result)
輸出結果:
A B
0 A0 B0
1 A1 B1
2 A2 B2
3 A3 B3
4 A4 B4
5 A5 B5
merge
函數merge
函數用于根據一個或多個鍵將兩個數據框進行合并。它類似于SQL中的JOIN
操作。
# 創建兩個數據框
df1 = pd.DataFrame({'key': ['K0', 'K1', 'K2'],
'A': ['A0', 'A1', 'A2'],
'B': ['B0', 'B1', 'B2']})
df2 = pd.DataFrame({'key': ['K0', 'K1', 'K2'],
'C': ['C0', 'C1', 'C2'],
'D': ['D0', 'D1', 'D2']})
# 根據key列進行合并
result = pd.merge(df1, df2, on='key')
print(result)
輸出結果:
key A B C D
0 K0 A0 B0 C0 D0
1 K1 A1 B1 C1 D1
2 K2 A2 B2 C2 D2
merge
函數支持多種合并方式,包括內連接(inner)、左連接(left)、右連接(right)和外連接(outer)。
# 左連接
result = pd.merge(df1, df2, on='key', how='left')
print(result)
# 右連接
result = pd.merge(df1, df2, on='key', how='right')
print(result)
# 外連接
result = pd.merge(df1, df2, on='key', how='outer')
print(result)
如果合并鍵不止一個,可以傳遞一個列表給on
參數。
# 創建兩個數據框
df1 = pd.DataFrame({'key1': ['K0', 'K0', 'K1'],
'key2': ['K0', 'K1', 'K0'],
'A': ['A0', 'A1', 'A2'],
'B': ['B0', 'B1', 'B2']})
df2 = pd.DataFrame({'key1': ['K0', 'K1', 'K1'],
'key2': ['K0', 'K0', 'K0'],
'C': ['C0', 'C1', 'C2'],
'D': ['D0', 'D1', 'D2']})
# 根據key1和key2列進行合并
result = pd.merge(df1, df2, on=['key1', 'key2'])
print(result)
輸出結果:
key1 key2 A B C D
0 K0 K0 A0 B0 C0 D0
1 K1 K0 A2 B2 C1 D1
concat
函數用于沿指定軸連接多個數據框,適用于簡單的行或列連接。merge
函數用于根據一個或多個鍵將兩個數據框進行合并,支持多種合并方式,適用于復雜的合并操作。通過靈活使用concat
和merge
函數,可以高效地處理和分析數據。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。