pandas的基本用法(七)——合并數(shù)據(jù)merge

文章作者:Tyan
博客:noahsnail.com ?|? CSDN ?|? 簡(jiǎn)書(shū)

本文主要是關(guān)于pandas的一些基本用法叛甫。

#!/usr/bin/env python
# _*_ coding: utf-8 _*_

import pandas as pd
import numpy as np


# Test 1
# 定義數(shù)據(jù)
left = pd.DataFrame({'key': ['K0', 'K1', 'K2', 'K3'],
                    'A': ['A0', 'A1', 'A2', 'A3'], 
                    'B': ['B0', 'B1', 'B2', 'B3']})
right = pd.DataFrame({'key': ['K0', 'K1', 'K2', 'K3'],
                    'C': ['C0', 'C1', 'C2', 'C3'], 
                    'D': ['D0', 'D1', 'D2', 'D3']})

print left
print right

# merge合并
res = pd.merge(left, right, on = 'key')
print res

# Test 1 result
    A   B key
0  A0  B0  K0
1  A1  B1  K1
2  A2  B2  K2
3  A3  B3  K3
    C   D key
0  C0  D0  K0
1  C1  D1  K1
2  C2  D2  K2
3  C3  D3  K3

    A   B key   C   D
0  A0  B0  K0  C0  D0
1  A1  B1  K1  C1  D1
2  A2  B2  K2  C2  D2
3  A3  B3  K3  C3  D3

# Test 2
# 定義數(shù)據(jù)
left = pd.DataFrame({'key1': ['K0', 'K1', 'K2', 'K3'],
                     'key2': ['K0', 'K1', 'K2', 'K3'],
                    'A': ['A0', 'A1', 'A2', 'A3'], 
                    'B': ['B0', 'B1', 'B2', 'B3']})
right = pd.DataFrame({'key1': ['K0', 'K1', 'K2', 'K3'],
                      'key2': ['K0', 'K1', 'K2', 'K4'],
                    'C': ['C0', 'C1', 'C2', 'C3'], 
                    'D': ['D0', 'D1', 'D2', 'D3']})

print left
print right
# 合并兩列, 默認(rèn)方法是how=inner, 只合并相同的部分, how的取值可以為['left', 'right', 'outer', 'inner']
res = pd.merge(left, right, on = ['key1', 'key2'])
print res

# Test 2 result
    A   B key1 key2
0  A0  B0   K0   K0
1  A1  B1   K1   K1
2  A2  B2   K2   K2
3  A3  B3   K3   K3
    C   D key1 key2
0  C0  D0   K0   K0
1  C1  D1   K1   K1
2  C2  D2   K2   K2
3  C3  D3   K3   K4
    A   B key1 key2   C   D
0  A0  B0   K0   K0  C0  D0
1  A1  B1   K1   K1  C1  D1
2  A2  B2   K2   K2  C2  D2

# Test 3
# 通過(guò)indicator表明merge的方式
res = pd.merge(left, right, on = ['key1', 'key2'], how = 'outer', indicator = True)
print res

# 修改indicator的名字
res = pd.merge(left, right, on = ['key1', 'key2'], how = 'outer', indicator = 'indicator')
print res

# Test 3 result
     A    B key1 key2    C    D      _merge
0   A0   B0   K0   K0   C0   D0        both
1   A1   B1   K1   K1   C1   D1        both
2   A2   B2   K2   K2   C2   D2        both
3   A3   B3   K3   K3  NaN  NaN   left_only
4  NaN  NaN   K3   K4   C3   D3  right_only

     A    B key1 key2    C    D   indicator
0   A0   B0   K0   K0   C0   D0        both
1   A1   B1   K1   K1   C1   D1        both
2   A2   B2   K2   K2   C2   D2        both
3   A3   B3   K3   K3  NaN  NaN   left_only
4  NaN  NaN   K3   K4   C3   D3  right_only

# Test 4
# 定義數(shù)據(jù)
left = pd.DataFrame({ 'A': ['A0', 'A1', 'A2', 'A3'], 
                      'B': ['B0', 'B1', 'B2', 'B3']},
                      index = ['K0', 'K1', 'K2', 'K3'])
right = pd.DataFrame({'C': ['C0', 'C1', 'C2', 'C3'], 
                      'D': ['D0', 'D1', 'D2', 'D3']},
                      index = ['K0', 'K1', 'K2', 'K3'])

print left
print right

# merge數(shù)據(jù)
res = pd.merge(left, right, left_index = True, right_index = True, how = 'outer')
print res

# Test 4 result
     A   B
K0  A0  B0
K1  A1  B1
K2  A2  B2
K3  A3  B3
     C   D
K0  C0  D0
K1  C1  D1
K2  C2  D2
K3  C3  D3

     A   B   C   D
K0  A0  B0  C0  D0
K1  A1  B1  C1  D1
K2  A2  B2  C2  D2
K3  A3  B3  C3  D3

# Test 5
# 定義數(shù)據(jù)
left = pd.DataFrame({ 'A': ['A0', 'A1', 'A2', 'A3'], 
                      'B': ['B0', 'B1', 'B2', 'B3']})
right = pd.DataFrame({'A': ['A0', 'A1', 'A2', 'A3'], 
                      'B': ['D0', 'D1', 'D2', 'D3']})

print left
print right

# 區(qū)分兩個(gè)B
res = pd.merge(left, right, on = 'A', how = 'inner', suffixes = ['_left', '_right'])
print res

# Test 5 result
    A   B
0  A0  B0
1  A1  B1
2  A2  B2
3  A3  B3
    A   B
0  A0  D0
1  A1  D1
2  A2  D2
3  A3  D3
    A B_left B_right
0  A0     B0      D0
1  A1     B1      D1
2  A2     B2      D2
3  A3     B3      D3
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市吞瞪,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖蚌堵,帶你破解...
    沈念sama閱讀 211,817評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異沛婴,居然都是意外死亡吼畏,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,329評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén)嘁灯,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)泻蚊,“玉大人,你說(shuō)我怎么就攤上這事丑婿⌒孕郏” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,354評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵枯冈,是天一觀的道長(zhǎng)毅贮。 經(jīng)常有香客問(wèn)我,道長(zhǎng)尘奏,這世上最難降的妖魔是什么滩褥? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,498評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮炫加,結(jié)果婚禮上瑰煎,老公的妹妹穿的比我還像新娘。我一直安慰自己俗孝,他們只是感情好酒甸,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,600評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著赋铝,像睡著了一般插勤。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,829評(píng)論 1 290
  • 那天农尖,我揣著相機(jī)與錄音析恋,去河邊找鬼。 笑死盛卡,一個(gè)胖子當(dāng)著我的面吹牛助隧,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播滑沧,決...
    沈念sama閱讀 38,979評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼并村,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了滓技?” 一聲冷哼從身側(cè)響起哩牍,我...
    開(kāi)封第一講書(shū)人閱讀 37,722評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎令漂,沒(méi)想到半個(gè)月后姐叁,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,189評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡洗显,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,519評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了原环。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片挠唆。...
    茶點(diǎn)故事閱讀 38,654評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖嘱吗,靈堂內(nèi)的尸體忽然破棺而出玄组,到底是詐尸還是另有隱情,我是刑警寧澤谒麦,帶...
    沈念sama閱讀 34,329評(píng)論 4 330
  • 正文 年R本政府宣布俄讹,位于F島的核電站,受9級(jí)特大地震影響绕德,放射性物質(zhì)發(fā)生泄漏患膛。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,940評(píng)論 3 313
  • 文/蒙蒙 一耻蛇、第九天 我趴在偏房一處隱蔽的房頂上張望踪蹬。 院中可真熱鬧,春花似錦臣咖、人聲如沸跃捣。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,762評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)疚漆。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間娶聘,已是汗流浹背闻镶。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,993評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留趴荸,地道東北人儒溉。 一個(gè)月前我還...
    沈念sama閱讀 46,382評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像发钝,于是被迫代替她去往敵國(guó)和親顿涣。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,543評(píng)論 2 349

推薦閱讀更多精彩內(nèi)容