pandas合併資料merge

2021-09-25 04:40:52 字數 3615 閱讀 4750

**: 

snailtyan:

本文主要是關於pandas的一些基本用法。

#!/usr/bin/env python

# _*_ coding: utf-8 _*_

import pandas as pd

import numpy as np

# test 1

# 定義資料

left = pd.dataframe()

right = pd.dataframe()

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

# 定義資料

left = pd.dataframe()

right = pd.dataframe()

print left

print right

# 合併兩列, 預設方法是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

# 通過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

# 定義資料

left = pd.dataframe(,

index = ['k0', 'k1', 'k2', 'k3'])

right = pd.dataframe(,

index = ['k0', 'k1', 'k2', 'k3'])

print left

print right

# merge資料

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

# 定義資料

left = pd.dataframe()

right = pd.dataframe()

print left

print right

# 區分兩個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

pandas合併資料集(merge使用)

merge 合併資料集,通過left,right確定連線字段,預設是兩個資料集相同的字段 引數 說明 left 參與合併的左側dataframe right 參與合併的右側dataframe how 連線方式 inner 預設 還有,outer left right on 用於連線的列名,必須同時存...

Pandas筆記七 合併merge

很像表的連線 res pd.merge left,right,on key 合併兩個dataframe 依據key這一列進行合併 也可以根據兩列進行連線 how和資料庫連線差不多 how inner outer left right res pd.merge left,right,on key1 k...

Pandas 連線合併函式merge

一 merge函式用途 pandas中的merge 函式類似於sql中join的用法,可以將不同資料集依照某些字段 屬性 進行合併操作,得到乙個新的資料集。二 merge 函式的具體引數 引數 說明how 預設為inner,可設為inner outer left right on根據某個字段進行連線...