join方法
dataframe內置的join方法是一種快速合並的方法。它默認以index作為對齊的列。
1.3.1 how 參數
join中的how參數和merge中的how參數一樣,用來指定表合並保留數據的規則。
具體可見前面的 how 說明。
1.3.2 on 參數
在實際應用中如果右表的索引值正是左表的某一列的值,這時可以通過將 右表的索引 和 左表的列 對齊合並這樣靈活的方式進行合並。
ex 1
In [59]: left = pd.DataFrame({'A': ['A0', 'A1', 'A2', 'A3'], ....: 'B': ['B0', 'B1', 'B2', 'B3'], ....: 'key': ['K0', 'K1', 'K0', 'K1']}) ....: In [60]: right = pd.DataFrame({'C': ['C0', 'C1'], ....: 'D': ['D0', 'D1']}, ....: index=['K0', 'K1']) ....: In [61]: result = left.join(right, on='key')
1.3.3 suffix后綴參數
如果和表合並的過程中遇到有一列兩個表都同名,但是值不同,合並的時候又都想保留下來,就可以用suffixes給每個表的重復列名增加后綴。
In [79]: result = pd.merge(left, right, on='k', suffixes=['_l', '_r'])
* 另外還有lsuffix 和 rsuffix分別指定左表的后綴和右表的后綴。
1.4 組合多個dataframe
一次組合多個dataframe的時候可以傳入元素為dataframe的列表或者tuple。一次join多個,一次解決多次煩惱~
In [83]: right2 = pd.DataFrame({'v': [7, 8, 9]}, index=['K1', 'K1', 'K2']) In [84]: result = left.join([right, right2])
- 1
- 2
- 3
1.5 更新表的nan值
1.5.1 combine_first
如果一個表的nan值,在另一個表相同位置(相同索引和相同列)可以找到,則可以通過combine_first來更新數據
1.5.2 update
如果要用一張表中的數據來更新另一張表的數據則可以用update來實現
1.5.3 combine_first 和 update 的區別
使用combine_first會只更新左表的nan值。而update則會更新左表的所有能在右表中找到的值(兩表位置相對應)。