python多表拼接

2021-10-02 14:17:31 字數 3959 閱讀 2799

'''

多表的橫向拼接:在橫向將兩個表依據公共列拼接在一起

'''# 連線表的型別

# 1。一對一:就是兩個表的公共列是一對一的

import pandas as pd

df1 = pd.read_excel(

'/users/caizhengjie/desktop/資料分析資料/多表拼接/資料1.xlsx'

)df2 = pd.read_excel(

'/users/caizhengjie/desktop/資料分析資料/多表拼接/資料2.xlsx'

)print

(df1)

print

(df2)

#如果將df1和df2表拼接在一起,直接用pd.merge()方法

print

(pd.merge(df1,df2)

)# 2。多對一:就是待連線的兩個表的公共列不是一對一的,其中乙個表的公共列有重複值,另乙個表的公共列有唯一值

df3 = pd.read_excel(

'/users/caizhengjie/desktop/資料分析資料/多表拼接/資料3.xlsx'

)df4 = pd.read_excel(

"/users/caizhengjie/desktop/資料分析資料/多表拼接/資料4.xlsx"

)print

(df3)

print

(df4)

print

(pd.merge(df3, df4,on=

'學號'))

# 3。多對多:就是待連線的兩個表的公共列不是一對一的,且兩個表中的公共列都有重複值

df5 = pd.read_excel(

'/users/caizhengjie/desktop/資料分析資料/多表拼接/資料5.xlsx'

)df6 = pd.read_excel(

'/users/caizhengjie/desktop/資料分析資料/多表拼接/資料6.xlsx'

)print

(df5)

print

(df6)

print

(pd.merge(df5,df6)

)# 連線鍵的型別

# 1預設以公共列作為連線鍵:pd.merge()方法會預設尋找兩個表中的公共列,然後以這個公共列作為連線鍵進行連線

print

(pd.merge(df1,df2)

)# 2用on來指定連線鍵:也可以用on來指定連線鍵,引數on一般指定的也是兩個表中的公共鍵,公共列也可以有多個

print

(pd.merge(df3, df4,on=

'學號'))

# 3分別指定左右連線鍵:當兩個表中沒有公共列時,這裡指的是實際值一樣,但列名不同,這個時候就要分別指明是左表和右表連線,使用的引數分別是left_on和right_on

df7 = pd.read_excel(

'/users/caizhengjie/desktop/資料分析資料/多表拼接/資料7.xlsx'

)print

(pd.merge(df7, df2,left_on=

'編號'

,right_on=

'學號'))

# 4把索引列當作連線鍵

df1 = df7.set_index(

'編號'

)df2 = df2.set_index(

'學號'

)print

(pd.merge(df1,df2,left_index=

true

, right_index=

true))

# 還可以把索引列和普通列混用

print

(pd.merge(df1,df2,left_index=

true

, right_on=

'學號'))

# 連線方式

# 1內連線:就是取兩個表中的公共部分,如果不指定連線方式,則預設是內連線

df8 = pd.read_excel(

'/users/caizhengjie/desktop/資料分析資料/多表拼接/資料8.xlsx'

)print

(pd.merge(df1,df8,on=

'學號'

,how=

'inner'))

# 2左連線:就是以左表為基礎,右表往左表上拼接。

print

(pd.merge(df1,df8,on=

'學號'

,how=

'left'))

# 3右連線:就是以右表為基礎,左表往右表上拼接

print

(pd.merge(df1,df8,on=

'學號'

,how=

'right'))

# 4外連線:就是取兩個表的交集

print

(pd.merge(df1,df8,on=

'學號'

,how=

'outer'))

# 重複列名處理

# 兩個表在進行連線時,經常會遇到列名重複的情況,當然我們可以自定義重複的列名,只需要修改引數suffixes的值即可,預設是['_x','_y']

print

(df1)

print

(df8)

print

(pd.merge(df1,df8,on=

'學號'

,how=

'inner'))

# 給重複的列名加字尾_l_r

print

(pd.merge(df1,df8,on=

'學號'

,how=

'inner'

,suffixes=

['_l'

,'_r'])

)

'''

# 表的縱向拼接:是在垂直方向上進行拼接

# 在python中想縱向合併兩個表,要用到concat()方法

'''import pandas as pd

df1 = pd.read_excel(

'/users/caizhengjie/desktop/資料分析資料/多表拼接/資料9.xlsx'

)df2 = pd.read_excel(

'/users/caizhengjie/desktop/資料分析資料/多表拼接/資料10.xlsx'

)print

(df1.set_index(

'編號'))

print

(df2.set_index(

'編號'))

print

(pd.concat(

[df1.set_index(

'編號'

),df2.set_index(

'編號')]

))# 索引設定.pd.concat()方法預設保留原表的索引,我們可以通過設定引數ignore_index的值,讓其等於true,這樣就會產生成一組新的索引

print

(pd.concat(

[df1.set_index(

'編號'

),df2.set_index(

'編號')]

,ignore_index=

true))

# 重疊資料合併

df3 = pd.read_excel(

'/users/caizhengjie/desktop/資料分析資料/多表拼接/資料11.xlsx'

)print

(pd.concat(

[df1,df3]))

print

(pd.concat(

[df1.set_index(

'編號'

),df2.set_index(

'編號')]

,ignore_index=

true

).drop_duplicates(

))

python 全景拼接

1 影象拼接的關鍵兩步是 配準 registration 和融合 blending 配準的目的是根據幾何運動模型,將影象註冊到同乙個座標系中 融合則是將配準後的影象合成為一張大的拼接影象。影象的平移模型是指影象僅在兩維空間發生了 方向和 方向的位移,如果攝像機僅僅發生了平移運動,則可以採用平移模型。...

python路徑拼接問題

python路徑拼接 windows 系統一般用斜槓 需要加轉義符號,但是windows 斜槓和反斜槓通用 linux 一般用反斜槓 斜槓會報錯。父目錄和子目錄路徑拼接方法 parent r e om convert demo ok parent parent 1 parent 1 replace ...

python 字串拼接

閱讀目錄 1.加號 2.逗號 3.直接連線 4.格式化 5.join 6.多行字串拼接 回到頂部 示例版本為py2 回到頂部 第一種,有程式設計經驗的人,估計都知道很多語言裡面是用加號連線兩個字串,python裡面也是如此直接用 來連線兩個字串 print python tab 結果 pythont...