pandas组队打卡学习日记4.30

第五章:合并

在这里插入图片描述

问题

【问题一】 append/assign/combine/update/concat/merge/join各自最适合使用的场景,并举出相应的例子。

【问题二】 merge_ordered和merge_asof?和merge是什么关系?

merge_ordered:
函数允许组合时间序列和其他有序数据。 特别是它有一个可选的fill_method关键字来填充/插入缺失的数据。
merge_asof
除了我们匹配最近的键而不是相等的键之外,其他的都类似于有序的left-join 。 对于左侧DataFrame中的每一行,我们选择右侧DataFrame中on键对应的值小于left的键对应的值的最后一行。 两个DataFrame必须按键排序。

【问题三】 请构造一个多级索引与多级索引合并的例子,尝试使用不同的合并函数。

【问题四】 上文提到了连接的笛卡尔积,那么当连接方式变化时(inner/outer/left/right),这种笛卡尔积规则会相应变化吗?

练习

一:
(a)

import pandas as pd
import numpy as np
df1=pd.read_csv('C:/Users/76709/Desktop/4.18组对学习pandas/joyful-pandas-master/data/Employee1.csv')
df2=pd.read_csv('C:/Users/76709/Desktop/4.18组对学习pandas/joyful-pandas-master/data/Employee2.csv')
list(set(df1['Name']).intersection(set(df2['Name'])))

(b)

df_b1 = df1[~df1['Name'].isin(list(set(df1['Name']).intersection(set(df2['Name']))))]
df_b2 = df2[~df2['Name'].isin(list(set(df1['Name']).intersection(set(df2['Name']))))]
pd.concat([df_b1,df_b2]).set_index('Name')

(c)
在这里插入图片描述
在这里插入图片描述
二:
(a)

df1 = pd.read_csv('C:/Users/76709/Desktop/4.18组对学习pandas/joyful-pandas-master/data/Course1.csv')
df2 = pd.read_csv('C:/Users/76709/Desktop/4.18组对学习pandas/joyful-pandas-master/data/Course2.csv')
df_11= df1.query('课程类别 in ["学科基础课","专业必修课","专业选修课"]')
df_12= df1.query('课程类别 not in ["学科基础课","专业必修课","专业选修课"]')
df_21= df2.query('课程类别 in ["学科基础课","专业必修课","专业选修课"]')
df_22= df2.query('课程类别 not in ["学科基础课","专业必修课","专业选修课"]')

参考答案中的 df_a11,df_a12,df_a21,df_a22 =0,0,0,0 未看懂

(b)
在这里插入图片描述

(c)
在这里插入图片描述

(d)
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值