pandas 資料整合concat,merge

2021-10-03 13:41:58 字數 4310 閱讀 6819

這個函式橫向合併時,將表的所有資料通過索引相同合併,而merge函式可以選擇鍵值合併

引數功能:

aixs:設定合併方式,0為縱向;1為橫向

jion:設定是交集還是並集,』『inner』『是交集;』『outer』'是並集

import pandas as pd

import numpy as np

df1=pd.dataframe(

)df2=pd.dataframe(

)df3=pd.dataframe(

)print

('下面的是=橫向==交集==產生的結果************'

)merge=pd.concat(

[df1,df2]

,axis=

1,join=

'inner'

)print

(merge)

print

('\n下面的是=橫向==並集==產生的結果**************'

)merge1=pd.concat(

[df1,df2]

,axis=

1,join=

'outer'

)print

(merge1)

print

('\n下面的是=縱向====無索引產生的結果**************'

)merge2=pd.concat(

[df1,df2]

,axis=

0,ignore_index=

true

)print

(merge2)

print

('\n下面的是=縱向====有索引產生的結果**************'

)merge3=pd.concat(

[df1,df2]

,axis=

0,ignore_index=

false

)print

(merge3)

print

('\n下面的是=縱向====drop消去索引產生的結果並inplace作用到原數***********'

)merge3.reset_index(drop=

true

,inplace=

true

)print

(merge3)

'''下面的是=橫向==交集==產生的結果**

****

****

** 姓名 年齡 性別 姓名 年齡 性別

0 小紅 18 女 大紅 28 女

1 小風 15 男 大風 25 男

2 小黑 17 男 大黑 27 男

下面的是=橫向==並集==產生的結果**

****

****

****

姓名 年齡 性別 姓名 年齡 性別

0 小紅 18 女 大紅 28 女

1 小風 15 男 大風 25 男

2 小黑 17 男 大黑 27 男

3 nan nan nan 大嵐 25 女

下面的是=縱向==

==無索引產生的結果**

****

****

****

姓名 年齡 性別

0 小紅 18 女

1 小風 15 男

2 小黑 17 男

3 大紅 28 女

4 大風 25 男

5 大黑 27 男

6 大嵐 25 女

下面的是=縱向==

==有索引產生的結果**

****

****

****

姓名 年齡 性別

0 小紅 18 女

1 小風 15 男

2 小黑 17 男

0 大紅 28 女

1 大風 25 男

2 大黑 27 男

3 大嵐 25 女

下面的是=縱向==

==drop消去索引產生的結果並inplace作用到原數**

****

****

* 姓名 年齡 性別

0 小紅 18 女

1 小風 15 男

2 小黑 17 男

3 大紅 28 女

4 大風 25 男

5 大黑 27 男

6 大嵐 25 女

將資料表中的某一列作為鍵值,當鍵值相同時放在同一行,相當於將該行鍵值合併

pd.merge(left=, right= ,how= " 「,left_on =」 「, right_on=」 ",)

引數:**left:**放到左邊的資料表變數;right:放在右邊資料表變數

**how:**合併方式,left:左表全顯示,right右表全顯示;outer:兩個都顯示;inner:只顯示相等的

**left_on:**左邊要關聯的屬性;**right_on:**右邊要關聯的屬性,可以是列表表示多個相等的元素

import pandas as pd

import numpy as np

df1=pd.dataframe(

)df2=pd.dataframe(

)print

('\n按照==左邊==列表顯示-----'

)merg=pd.merge(left=df1,right=df2,how=

"left"

,\ left_on=

"姓名"

,right_on=

"姓名",)

print

(merg)

print

('\n按照==右邊===列表顯示-----'

)merg1=pd.merge(left=df1,right=df2,how=

"right"

,\ left_on=

"姓名"

,right_on=

"姓名",)

print

(merg1)

print

('\n按照===交===顯示-----'

)merg2=pd.merge(left=df1,right=df2,how=

"inner"

,\ left_on=

"姓名"

,right_on=

"姓名",)

print

(merg2)

print

('\n按照===並===顯示-----'

)merg3=pd.merge(left=df1,right=df2,how=

"outer"

,\ left_on=

"姓名"

,right_on=

"姓名",)

print

(merg3)

'''按照==左邊==列表顯示-----

姓名 年齡 性別 age gender

0 小紅 18 女 nan nan

1 小風 15 男 25 男

2 小黑 17 男 25 女

按照==右邊===列表顯示-----

姓名 年齡 性別 age gender

0 小風 15 男 25 男

1 小黑 17 男 25 女

2 大紅 nan nan 28 女

3 大黑 nan nan 27 男

按照===交===顯示-----

姓名 年齡 性別 age gender

0 小風 15 男 25 男

1 小黑 17 男 25 女

按照===並===顯示-----

姓名 年齡 性別 age gender

0 小紅 18 女 nan nan

1 小風 15 男 25 男

2 小黑 17 男 25 女

3 大紅 nan nan 28 女

4 大黑 nan nan 27 男

'''

14 Pandas實現資料的合併concat

使用場景 批量合併相同格式的excel 給dataframe新增行 給dataframe新增列 一句話說明concat語法 concat語法 pandas.concat objs,axis 0,join outer ignore index false import pandas as pd imp...

pandas處理資料方法整合

1.如何將乙個表中的role欄位取值 客戶 和 坐席 處理為0和1data role data role lambda x 1if x 客戶 else 0 data keywords data.lambda x get keyword x role x content axis 1 3.去除一段話中...

pandas 排序 Pandas 資料排序

python 的 pandas 庫中有一類對資料排序的方法,主要分為對引數列排序,對數值排序,及二者混合三種。一.引數列排序 首先我們生成乙個亂序數列 unsorted df 隨後我們可通過 df.sort index 函式對資料集進行排序操作 如不做規定,返回行引數正序排序 新增引數 ascend...