Python:利用pandas对两个dataframe数据进行左联接/左关联(以左边为主体)、右联接/右关联(以右边为主体)、内联接(取交集)、外联接(取并集)操作案例实现代码

您所在的位置:网站首页 魔兽世界威娜莉的神秘礼物怎么获得 Python:利用pandas对两个dataframe数据进行左联接/左关联(以左边为主体)、右联接/右关联(以右边为主体)、内联接(取交集)、外联接(取并集)操作案例实现代码

Python:利用pandas对两个dataframe数据进行左联接/左关联(以左边为主体)、右联接/右关联(以右边为主体)、内联接(取交集)、外联接(取并集)操作案例实现代码

2023-03-09 20:26| 来源: 网络整理| 查看: 265

Python:利用pandas对两个dataframe数据进行左联接/左关联(以左边为主体)、右联接/右关联(以右边为主体)、内联接(取交集)、外联接(取并集)操作案例实现代码

目录

join、left join和right join之间区别

Database之SQLSever:SQL命令实现查询之多表查询、嵌套查询、分页复杂查询,删除表内重复记录数据、连接(join、left join和right join简介及其区别)等案例之详细攻略

左联接/左关联(以左边为主体)、右联接/右关联(以右边为主体)、内联接(取交集)、外联接(取并集)操作案例

实现代码

join、left join和right join之间区别 Database之SQLSever:SQL命令实现查询之多表查询、嵌套查询、分页复杂查询,删除表内重复记录数据、连接(join、left join和right join简介及其区别)等案例之详细攻略

https://yunyaniu.blog.csdn.net/article/details/107620041

 

左联接/左关联(以左边为主体)、右联接/右关联(以右边为主体)、内联接(取交集)、外联接(取并集)操作案例 实现代码 # Python:利用pandas对两个dataframe数据进行左联接/左关联(以左边为主体)、右联接/右关联(以右边为主体)、内联接(取交集)、外联接(取并集)操作案例实现代码 import pandas as pd import numpy as np students_info={"student_num": ['1001', '1002', '1003', '1004'], "name": ['Bob', 'LiSa', 'Mary', 'Alan'], "major": ['mechanical', 'philosophy', 'mathematics', 'computer'], "grade": ['freshman', 'sophomore', 'junior', 'senior'], "sex": ['男', '女', '女', None,], # 输出 None "age": [np.nan, 28, 38 , '' ], # 输出 "born": [pd.NaT, pd.Timestamp("1990-01-01"), pd.Timestamp("1980-01-01"), ''], # 输出 NaT } students_score={"name": ['Bob', 'LiSa', 'Mary', 'Tom'], "chinese": [85, 80, 95, 98], "math": [90, 95, 85, 90], } s_info_df = pd.DataFrame(students_info) s_score_df = pd.DataFrame(students_score) s_df_left = s_info_df.merge(s_score_df, left_on='name',right_on='name',how='left') print('------------left:以左边为主体--------------') print(s_df_left) s_df_right = s_info_df.merge(s_score_df, left_on='name',right_on='name',how='right') print('------------right:以右边为主体--------------') print(s_df_right) s_df_inner = s_info_df.merge(s_score_df, left_on='name',right_on='name',how='inner') print('------------inner:取交集--------------') print(s_df_inner) s_df_outer = s_info_df.merge(s_score_df, left_on='name',right_on='name',how='outer') print('------------outer:取并集--------------') print(s_df_outer) ------------left:以左边为主体-------------- student_num name major grade ... age born chinese math 0 1001 Bob mechanical freshman ... NaN NaT 85.0 90.0 1 1002 LiSa philosophy sophomore ... 28 1990-01-01 80.0 95.0 2 1003 Mary mathematics junior ... 38 1980-01-01 95.0 85.0 3 1004 Alan computer senior ... NaT NaN NaN [4 rows x 9 columns] ------------right:以右边为主体-------------- student_num name major grade sex age born chinese math 0 1001 Bob mechanical freshman 男 NaN NaT 85 90 1 1002 LiSa philosophy sophomore 女 28 1990-01-01 80 95 2 1003 Mary mathematics junior 女 38 1980-01-01 95 85 3 NaN Tom NaN NaN NaN NaN NaT 98 90 ------------inner:取交集-------------- student_num name major grade sex age born chinese math 0 1001 Bob mechanical freshman 男 NaN NaT 85 90 1 1002 LiSa philosophy sophomore 女 28 1990-01-01 80 95 2 1003 Mary mathematics junior 女 38 1980-01-01 95 85 ------------outer:取并集-------------- student_num name major grade ... age born chinese math 0 1001 Bob mechanical freshman ... NaN NaT 85.0 90.0 1 1002 LiSa philosophy sophomore ... 28 1990-01-01 80.0 95.0 2 1003 Mary mathematics junior ... 38 1980-01-01 95.0 85.0 3 1004 Alan computer senior ... NaT NaN NaN 4 NaN Tom NaN NaN ... NaN NaT 98.0 90.0 [5 rows x 9 columns]



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3