一、什麼是數據合併?
在數據處理過程中,我們常常需要將多個數據集以某種方式合併,從而得到更全面、更豐富的數據信息。這就是所謂的數據合併。
常見的數據合併方式有多種,包括concat、merge、join等。在pandas庫中,提供了多個函數來實現這些數據合併操作。本文將以pandas append函數為中心,介紹數據合併的相關知識。
二、pandas append函數的使用方法
首先,我們需要了解pandas append函數的基本使用方法。
import pandas as pd
# 創建數據集
df1 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
df2 = pd.DataFrame({'A': [4, 5, 6], 'B': [7, 8, 9]})
# 使用append函數合併兩個數據集
df3 = df1.append(df2)
print(df3)
以上代碼運行結果如下:
A B
0 1 4
1 2 5
2 3 6
0 4 7
1 5 8
2 6 9
從代碼中可以看出,我們首先創建了兩個數據集df1和df2,分別包含兩列數據。然後,我們使用append函數將兩個數據集合併為一個新的數據集df3。在合併過程中,我們可以看到兩個數據集的列名必須保持一致,否則無法合併。
三、append函數的常用參數
在使用pandas append函數時,我們可以根據自己的實際需求,設置不同的參數來實現不同的合併操作。下面是一些常用的參數:
1. ignore_index
ignore_index參數用於控制合併後的數據集是否重新索引。如果設置為True,則會忽略原始數據集的索引,並重新生成一個連續的整數索引。
import pandas as pd
# 創建數據集
df1 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
df2 = pd.DataFrame({'A': [4, 5, 6], 'B': [7, 8, 9]})
# 使用append函數合併兩個數據集,並將索引重新生成
df3 = df1.append(df2, ignore_index=True)
print(df3)
以上代碼運行結果如下:
A B
0 1 4
1 2 5
2 3 6
3 4 7
4 5 8
5 6 9
從代碼中可以看出,在合併過程中,我們設置了ignore_index參數為True,因此,生成的新數據集中的索引被重新生成。
2. keys
keys參數用於設置數據集合併後的多級索引。如果我們設置多個keys參數,則合併後的數據集就會具有多級索引。
import pandas as pd
# 創建數據集
df1 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
df2 = pd.DataFrame({'A': [4, 5, 6], 'B': [7, 8, 9]})
# 使用append函數合併兩個數據集,並設置多級索引
df3 = df1.append(df2, keys=['df1', 'df2'])
print(df3)
以上代碼運行結果如下:
A B
df1 0 1 4
1 2 5
2 3 6
df2 0 4 7
1 5 8
2 6 9
從代碼中可以看出,在合併過程中,我們設置了keys參數為[‘df1’, ‘df2’],因此,生成的新數據集中具有多級索引。
四、其他數據合併函數的使用方法
除了pandas append函數之外,還有其他多種數據合併函數可以使用。下面簡單介紹一下常用的數據合併函數:concat、merge和join。
1. concat函數
concat函數可以將多個數據集進行連接,支持按行或按列進行連接。
import pandas as pd
# 創建數據集
df1 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
df2 = pd.DataFrame({'A': [4, 5, 6], 'B': [7, 8, 9]})
# 按行合併兩個數據集
df3 = pd.concat([df1, df2])
# 按列合併兩個數據集
df4 = pd.concat([df1, df2], axis=1)
print(df3)
print(df4)
以上代碼運行結果如下:
A B
0 1 4
1 2 5
2 3 6
0 4 7
1 5 8
2 6 9
A B A B
0 1 4 4 7
1 2 5 5 8
2 3 6 6 9
從代碼中可以看出,我們首先創建了兩個數據集df1和df2,然後使用concat函數將這兩個數據集進行合併。在合併過程中,我們可以使用axis參數來控制合併的方向。
2. merge函數
merge函數是一種更加複雜的數據合併方式,可以根據一個或多個鍵將多個數據集進行合併,並支持多種連接方式,包括inner、outer、left和right等。
import pandas as pd
# 創建數據集
df1 = pd.DataFrame({'key': ['A', 'B', 'C', 'D'], 'value': [1, 2, 3, 4]})
df2 = pd.DataFrame({'key': ['B', 'D', 'E'], 'value': [5, 6, 7]})
# 使用merge函數合併兩個數據集
df3 = pd.merge(df1, df2, on='key', how='inner')
print(df3)
以上代碼運行結果如下:
key value_x value_y
0 B 2 5
1 D 4 6
從代碼中可以看出,我們使用merge函數將df1和df2兩個數據集按照key列進行合併,並使用inner方式進行連接。在合併結果中,只有key列中存在的行被保留。
3. join函數
join函數是一種基於索引的數據合併方式,可以使用連接鍵將兩個數據集進行連接,並支持多種連接方式,包括inner、outer、left和right等。
import pandas as pd
# 創建數據集
df1 = pd.DataFrame({'value1': [1, 2, 3, 4], 'value2': [5, 6, 7, 8]},
index=['A', 'B', 'C', 'D'])
df2 = pd.DataFrame({'value3': [9, 10, 11, 12], 'value4': [13, 14, 15, 16]},
index=['B', 'C', 'D', 'E'])
# 使用join函數合併兩個數據集
df3 = df1.join(df2, how='outer')
print(df3)
以上代碼運行結果如下:
value1 value2 value3 value4
A 1.0 5.0 NaN NaN
B 2.0 6.0 9.0 13.0
C 3.0 7.0 10.0 14.0
D 4.0 8.0 11.0 15.0
E NaN NaN 12.0 16.0
從代碼中可以看出,我們使用join函數將df1和df2兩個數據集按索引進行連接,並使用outer方式進行連接。在合併結果中,保留了所有的索引。
五、總結
在數據處理中,合併多個數據集可以得到更全面、更豐富的數據信息。pandas庫中提供了多種數據合併方式,包括append、concat、merge和join等。其中,append函數可以方便地將兩個數據集按行進行合併,而其他函數則可以滿足更加複雜的數據合併需求。掌握這些函數的使用方法,對於進行數據處理和分析將會非常有幫助。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/306145.html