'''
多表的橫向拼接:在橫向將兩個表依據公共列拼接在一起
'''# 連線表的型別
# 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...