最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Pandas實現(xiàn)兩個表的連接功能的方法詳解

 更新時間:2022年09月01日 16:12:03   作者:派森醬  
這篇文章主要和大家一起說說pandas的兩個表的連接技能merge,也就是根據(jù)一個表的條件去匹配另一個表的內(nèi)容,感興趣的可以跟隨小編一起學習一下

上次介紹了pandas的多條件篩選,這些都是一些數(shù)據(jù)處理的必要技能,也不貪多,咱們每次學習一點。

這次咱們說說pandas的兩個表的連接技能merge,也就是根據(jù)一個表的條件去匹配另一個表的內(nèi)容。

話不多說,直接正文。

準備數(shù)據(jù)

先導入模塊

import?pandas?as?pd

df1?=?pd.DataFrame({
????'姓名':?['張三',?'李四',?'王五',?'劉六',?'齊四'],
????'號碼':?['123',?'456',?'789',?'987',?'654']
})

df2?=?pd.DataFrame({
????'姓名':?['張三',?'張三',?'張三',?'李四',?'李四',?'李四',?'李四',?'王五',?'王五',?'劉玉',?'胡軍',?'劉玉',?'劉六',?'劉六',?'劉六',?'劉六',?'劉克',?'劉玉',?'齊七',?'齊七',?'齊七',?'齊七',?'馮亮',?'劉玉',?'王云'],

????'號碼':?['123',?'123',?'123',?'123',?'123',?'456',?'456',?'456',?'456',?'456',?'741',?'741',?'741',?'741',?'741',?'789',?'789',?'789',?'789',?'789',?'852',?'852',?'852',?'852',?'852'],

????'日期':?['2022-03-13',?'2022-03-06',?'2022-01-30',?'2022-01-04',?'2022-02-26',?'2022-03-26',?'2022-03-06',?'2022-01-30',?'2022-01-29',?'2022-03-13',?'2022-03-06',?'2022-02-19',?'2022-02-04',?'2022-03-10',?'2022-04-19',?'2022-03-10',?'2022-01-29',?'2022-02-19',?'2022-03-06',?'2022-03-26',?'2022-01-04',?'2022-02-04',?'2022-04-19',?'2022-02-26',?'2022-03-06'],

????'方案':?['G1012',?'G1022',?'G1002',?'G1007',?'G1017',?'G1023',?'G1018',?'G1003',?'G1008',?'G1013',?'G1020',?'G1015',?'G1010',?'G1005',?'G1025',?'G1004',?'G1009',?'G1014',?'G1019',?'G1024',?'G1006',?'G1011',?'G1026',?'G1016',?'G1021']
})

輸出內(nèi)容

df1內(nèi)容

   姓名   號碼
0  張三  123
1  李四  456
2  王五  789
3  劉六  987
4  齊四  654

df2內(nèi)容:

    姓名  號碼    日期      方案
0   張三  123  2022-03-13  G1012
1   張三  123  2022-03-06  G1022
2   張三  123  2022-01-30  G1002
3   李四  123  2022-01-04  G1007
4   李四  123  2022-02-26  G1017
5   李四  456  2022-03-26  G1023
6   李四  456  2022-03-06  G1018
7   王五  456  2022-01-30  G1003
8   王五  456  2022-01-29  G1008
9   劉玉  456  2022-03-13  G1013
10  胡軍  741  2022-03-06  G1020
11  劉玉  741  2022-02-19  G1015
12  劉六  741  2022-02-04  G1010
13  劉六  741  2022-03-10  G1005
14  劉六  741  2022-04-19  G1025
15  劉六  789  2022-03-10  G1004
16  劉克  789  2022-01-29  G1009
17  劉玉  789  2022-02-19  G1014
18  齊七  789  2022-03-06  G1019
19  齊七  789  2022-03-26  G1024
20  齊七  852  2022-01-04  G1006
21  齊七  852  2022-02-04  G1011
22  馮亮  852  2022-04-19  G1026
23  劉玉  852  2022-02-26  G1016
24  王云  852  2022-03-06  G1021

連接

函數(shù)說明:pd.merge(left=df1(需要匹配的原始表), right=df2(被匹配的數(shù)據(jù)表), on="姓名"(需要匹配的條件列), how="inner"(連接方式))

內(nèi)連接

how默認為inner:內(nèi)連接查詢特點是df1有匹配的才顯示,不匹配的不顯示

df?=?pd.merge(left=df1,?right=df2,?on="姓名",?how="inner")

輸出:

    姓名 號碼_x 號碼_y  日期     方案
0   張三  123  123  2022-03-13  G1012
1   張三  123  123  2022-03-06  G1022
2   張三  123  123  2022-01-30  G1002
3   李四  456  123  2022-01-04  G1007
4   李四  456  123  2022-02-26  G1017
5   李四  456  456  2022-03-26  G1023
6   李四  456  456  2022-03-06  G1018
7   王五  789  456  2022-01-30  G1003
8   王五  789  456  2022-01-29  G1008
9   劉六  987  741  2022-02-04  G1010
10  劉六  987  741  2022-03-10  G1005
11  劉六  987  741  2022-04-19  G1025
12  劉六  987  789  2022-03-10  G1004

df1表里需要匹配的姓名里,在df2里面能匹配上姓名的都會列出來,而匹配不上的,都不會列出來,包括df1里面的內(nèi)容

小提示:如果兩表有相同列名的,會自動在列名后面加_x,_y來區(qū)分

外連接

how="outer"為外連接:查詢特點是無論匹不匹配都顯示,對應的值沒有則顯示空

df?=?pd.merge(left=df1,?right=df2,?on="姓名",?how="outer")

輸出:

    姓名 號碼_x 號碼_y   日期     方案
0   張三  123  123  2022-03-13  G1012
1   張三  123  123  2022-03-06  G1022
2   張三  123  123  2022-01-30  G1002
3   李四  456  123  2022-01-04  G1007
4   李四  456  123  2022-02-26  G1017
5   李四  456  456  2022-03-26  G1023
6   李四  456  456  2022-03-06  G1018
7   王五  789  456  2022-01-30  G1003
8   王五  789  456  2022-01-29  G1008
9   劉六  987  741  2022-02-04  G1010
10  劉六  987  741  2022-03-10  G1005
11  劉六  987  741  2022-04-19  G1025
12  劉六  987  789  2022-03-10  G1004
13  齊四  654  NaN         NaN    NaN
14  劉玉  NaN  456  2022-03-13  G1013
15  劉玉  NaN  741  2022-02-19  G1015
16  劉玉  NaN  789  2022-02-19  G1014
17  劉玉  NaN  852  2022-02-26  G1016
18  胡軍  NaN  741  2022-03-06  G1020
19  劉克  NaN  789  2022-01-29  G1009
20  齊七  NaN  789  2022-03-06  G1019
21  齊七  NaN  789  2022-03-26  G1024
22  齊七  NaN  852  2022-01-04  G1006
23  齊七  NaN  852  2022-02-04  G1011
24  馮亮  NaN  852  2022-04-19  G1026
25  王云  NaN  852  2022-03-06  G1021

df1表里索引13里的齊四無匹配,是空值,而在df2里面的內(nèi)容都會列出來,和df1匹配不上的其它列的內(nèi)容也是空值

注意:這有點互相匹配的意思喲

左連接

how="left"為左連接:查詢表示左邊的值全部顯示,如右邊無匹配則顯示空。但是右邊有的值匹配不了左邊則不顯示

df?=?pd.merge(left=df1,?right=df2,?on="姓名",?how="outer")

輸出:

    姓名 號碼_x 號碼_y   日期     方案
0   張三  123  123  2022-03-13  G1012
1   張三  123  123  2022-03-06  G1022
2   張三  123  123  2022-01-30  G1002
3   李四  456  123  2022-01-04  G1007
4   李四  456  123  2022-02-26  G1017
5   李四  456  456  2022-03-26  G1023
6   李四  456  456  2022-03-06  G1018
7   王五  789  456  2022-01-30  G1003
8   王五  789  456  2022-01-29  G1008
9   劉六  987  741  2022-02-04  G1010
10  劉六  987  741  2022-03-10  G1005
11  劉六  987  741  2022-04-19  G1025
12  劉六  987  789  2022-03-10  G1004
13  齊四  654  NaN         NaN    NaN

df1表里索引13里的齊四還是無匹配,是空值,而在df2里面的內(nèi)容就不會列出來了

右連接

how="right"為右連接:與左連接相反

df?=?pd.merge(left=df1,?right=df2,?on="姓名",?how="right")

輸出:

    姓名 號碼_x 號碼_y          日期     方案
0   張三  123  123  2022-03-13  G1012
1   張三  123  123  2022-03-06  G1022
2   張三  123  123  2022-01-30  G1002
3   李四  456  123  2022-01-04  G1007
4   李四  456  123  2022-02-26  G1017
5   李四  456  456  2022-03-26  G1023
6   李四  456  456  2022-03-06  G1018
7   王五  789  456  2022-01-30  G1003
8   王五  789  456  2022-01-29  G1008
9   劉玉  NaN  456  2022-03-13  G1013
10  胡軍  NaN  741  2022-03-06  G1020
11  劉玉  NaN  741  2022-02-19  G1015
12  劉六  987  741  2022-02-04  G1010
13  劉六  987  741  2022-03-10  G1005
14  劉六  987  741  2022-04-19  G1025
15  劉六  987  789  2022-03-10  G1004
16  劉克  NaN  789  2022-01-29  G1009
17  劉玉  NaN  789  2022-02-19  G1014
18  齊七  NaN  789  2022-03-06  G1019
19  齊七  NaN  789  2022-03-26  G1024
20  齊七  NaN  852  2022-01-04  G1006
21  齊七  NaN  852  2022-02-04  G1011
22  馮亮  NaN  852  2022-04-19  G1026
23  劉玉  NaN  852  2022-02-26  G1016
24  王云  NaN  852  2022-03-06  G1021

右連接正好與左連接相反,df1里面匹配不上的不顯示,df2里面的內(nèi)容全都出來了,匹配不上df1的其它列值則為空值

PS這完全是反向匹配呀

到此這篇關(guān)于Pandas實現(xiàn)兩個表的連接功能的方法詳解的文章就介紹到這了,更多相關(guān)Pandas表的連接內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

盐津县| 普宁市| 遵义市| 福州市| 武乡县| 诸暨市| 岫岩| 丹东市| 蕲春县| 航空| 广东省| 盐山县| 卓资县| 秦皇岛市| 新干县| 东莞市| 古田县| 城口县| 丹巴县| 黎城县| 略阳县| 宁强县| 灵山县| 项城市| 绥宁县| 静乐县| 五家渠市| 东明县| 桐柏县| 靖远县| 淮南市| 大新县| 胶州市| 侯马市| 新泰市| 保德县| 河池市| 肥乡县| 兴业县| 长沙市| 霍邱县|