通過乙個或多個鍵將行鏈結起來的。
)引數解釋如下:
注:以下引數,個人還沒有用過,抄自《利用python進行資料分析(第二版)》
(1)基礎例項
import pandas as pd
left = pd.dataframe(
)right = pd.dataframe(
)result = pd.merge(left, right, on=
'key'
)print
(result)
out:
key a b c d
0 k0 a0 b0 c0 d0
1 k1 a1 b1 c1 d1
2 k2 a2 b2 c2 d2
(2)傳入引數how='left』
left = pd.dataframe(
)# 這裡的left將key列的k3換成k4,即left和right的key列的有不匹配的地方。
right = pd.dataframe(
)result = pd.merge(left, right, on=
'key'
, how=
'left'
)print
(result)
out:
key a b c d
0 k0 a0 b0 c0 d0
1 k1 a1 b1 c1 d1
2 k2 a2 b2 c2 d2
3 k4 a3 b3 nan nan
# 拼接後的key列有k4而沒有k3,且'c','d'兩列為nan
(3)dataframe和series的合併
left = pd.dataframe(
)right = pd.series([0
,1,2
,3], index=
['k0'
,'k1'
,'k2'
,'k3'
], name=
'c')
# 一定要對series命名,不然會報錯
# 如果是給定好的series,可以使用right.name = 'c'
result = left.merge(right, left_on=
'key'
, right_index=
true
)print
(result)
out:
key a b c
0 k0 a0 b0 0
1 k1 a1 b1 1
2 k2 a2 b2 2
3 k3 a3 b3 3
這種合併方法,將完整的保留資料(不會丟棄資料,而是根據 index 和 columns 增加行列),並可指定合併的軸。
pd.concat(objs,
# 要合併物件
axis=0,
# 選擇合併軸
join=
'outer'
,# 連線方式,預設並集
join_axes=
none
, ignore_index=
false
, keys=
none
, levels=
none
, names=
none
, verify_integrity=
false
, copy=
true
)
axis=0是按照列的方式合併,可以看到三塊區域「自上至下」進行了合併,但是此時如果有相同的column就會合併在一起
axis=1是按照行的方式合併,可以看到三塊區域「自左至右」進行了合併,但是此時如果有相同的index就會合併在一起
未完待續……
pandas庫學習記錄 一)
pandas庫是乙個基於numpy庫的乙個開源python庫,用於快速分析,清洗和準備資料。pandas中的主要兩種資料型別 序列series 類似於一維陣列,可以用numpy中針對一維陣列的函式,也可以用標籤來進行索引,可自動對齊 資料框dataframe 多用於二維陣列,也可以用numpy中二維...
pandas庫學習記錄
在接觸了一點python的資料分析後,發現有乙個眾人很推崇的pandas庫。據說,與numpy結合能夠實現許多強大的使資料分析功能。但其實在接觸一段時間之後,我發現,還是很難掌握這個庫的精髓。為了避免長時間遺忘,我把這一系列實踐記錄下來。引用 import pandas 一般都寫作 import p...
pandas學習記錄
1.模組匯入 import pandas as pd 2.pandas序列series自動給列表加上索引 如 a 1,2,3,4 b pd.series a c enumerate a print b 類似於 for i,j in c print i,j 3.numpy 只是純碎的生成矩陣陣列,而 ...