pandas進行資料的交集與並集方式的資料合併

2021-07-30 14:59:58 字數 3020 閱讀 4577

資料合併有多種方式,其中最常見的應該就是交集和並集的求取。之前通過分析總結過

pandas

資料merge

功能預設的行為,其實預設下求取的就是兩個資料的「交集

」。有如下資料定義:

in [

26]:

df1

out[

26]: 

data1 key

0      0   b

1      1   b

2      2   a

3      3   c

4      4   a

5      5   a

6      6   b

in [

27]:

df2

out[

27]: 

data2 key

0      0   a

1      1   b

2      2   d

3      3   b 進行

merge

的結果:

in [

28]:

pd.merge(df1,df2)

out[

28]: 

data1 key  data2

0      0   b      1

1      0   b      3

2      1   b      1

3      1   b      3

4      6   b      1

5      6   b      3

6      2   a      0

7      4   a      0

8      5   a      0

從上面的結果中能夠看出,

merge

的預設處理行為是求取了兩組資料

key的交集,但是對於

key的值進行了並集的求取。其實也很好理解,如果僅僅是求取交集而資料沒有任何合併那就不叫做資料合併了。

接下來試一下制定了引數的的交集資料合併處理:

in [

29]:

pd.merge(df1,df2,how=

'inner')

out[

29]: 

data1 key  data2

0      0   b      1

1      0   b      3

2      1   b      1

3      1   b      3

4      6   b      1

5      6   b      3

6      2   a      0

7      4   a      0

8      5   a      0

in [

30]:

result_inner = pd.merge(df1,df2,how=

'inner')

in [

31]:

result_default = pd.merge(df1,df2)

in [

32]:

result_inner == result_default

out[

32]: 

data1   key data2

0  true  true  true

1  true  true  true

2  true  true  true

3  true  true  true

4  true  true  true

5  true  true  true

6  true  true  true

7  true  true  true

8  true  true  true

通過上面的結果可以看出:制定了引數的的交集資料合併處理的結果與資料合併方法

merge

的預設行為是一致的。

再試一下並集資料合併處理方法,這需要制定引數

how為

outer:

in [

35]:

result_outer = pd.merge(df1,df2,how=

'outer')

in [

36]:

result_outer

out[

36]: 

data1 key  data2

0     0.0   b    1.0

1     0.0   b    3.0

2     1.0   b    1.0

3     1.0   b    3.0

4     6.0   b    1.0

5     6.0   b    3.0

6     2.0   a    0.0

7     4.0   a    0.0

8     5.0   a    0.0

9     3.0   c    nan

10    nan   d    2.0

通過上面的執行結果可以看出:合併後的資料中的

key擁有了兩組資料所有的

key,而資料雖然有一部分兩組資料不能夠重合,但也通過

nan的值進行了相應的填補。

還有一點需要注意的,那就是合併之後的資料個數。合併後的資料中,

key的個數是兩組資料中分別擁有的資料的笛卡爾乘積。如果其中一組沒有的時候,進行合併的時候另一組資料中會建立乙個

nan數值的物件與之進行合併。

pandas進行資料分析

最近參加了一次apmcm,題目給出了很多 我們需要對資料進行分析。顯然,作為一名會python的大學生,肯定不會直接在 上進行各種變動,本文就如何使用pandas對excel 進行資料分析做一些介紹。3.1 讀取所有表中的職業 讀取所有表中的職業 pros.xlsx中有所有職業 pros path ...

pandas 對dataframe進行資料預處理

from sklearn import preprocessing enc preprocessing.onehotencoder enc.fit 0,0,3 1,1,0 0,2,1 1,0,2 fit來學習編碼 enc.transform 0,1,3 toarray 進行編碼輸出 array 1....

使用Pandas進行資料清洗

資料清洗的目的是修正異常值,以更好地進行運算和觀察結果。通過pandas對序列或資料幀的清洗分為兩個步驟 異常檢測和資料修正。1.異常檢測 pandas中的空值用 nan 表示,可以通過呼叫isnull和notnull來檢測序列物件和資料幀物件是否為異常值。2.資料修正資料檢測完畢之後,需要對資料進...