第五章-合并

本文深入探讨了Pandas库中各种数据操作方法,包括append、assign、combine、update、concat、merge和join的使用场景及实例,解析了merge_ordered和merge_asof的功能,展示了多级索引的合并技巧,并讨论了不同连接方式下的笛卡尔积规则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题

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

append:添加一行数据

s = pd.Series({'Gender':'F','Heighe':188},name = 'new_row')
df.append(s)

assign:添加一列数据

s = pd.Series(list('abcd'),index=range(4))
df.assign(Letter=s)

combine:用于表的填充,按照表的顺序轮流进行列的循环,自动索引对齐

df.combine(df_2,lambda x,y:x if x.mean()>y.mean() else y)

updata:直接将右表与左表相同的部分,在左表的基础上进行填充

df.update(df2)

concat:两个表的连接

pd.concat([df1,df3])#上下连接
pd.concat([df1,df3],axis=1)#列方向的连接

merge:将两个表更具一个列或者多列进行横向连接

pd.merge(left,right,on='key')

join:将多个表根据一列或者多列横向连接。

left.join(right)
【问题二】 merge_ordered和merge_asof的作用是什么?和merge是什么关系?

merge_ordered:当没有指定的连接键时,默认使用left和right列的交集将为连接键

merge_asof:增加了更具什么键排序的功能

是merge的补充

【问题三】 请构造一个多级索引与多级索引合并的例子,尝试使用不同的合并函数。
arrays = [['A','a'],['A','b'],['B','a'],['B','b']]
mul_index = pd.MultiIndex.from_tuples(arrays, names=('Upper', 'Lower'))
a = pd.DataFrame({'Score':['perfect','good','fair','bad'],'w':['w','s','d','c']},index=mul_index)

arrays = [['A','a'],['A','b'],['B','a'],['B','b']]
mul_index = pd.MultiIndex.from_tuples(arrays, names=('Upper', 'Lower'))
b = pd.DataFrame({'Score':['perfect','good','fair','bad'],'c':['s','s','d','c']},index=mul_index)

pd.merge(a,b,on='Score')
pd.concat([a,b],axis=1)
【问题四】 上文提到了连接的笛卡尔积,那么当连接方式变化时(inner/outer/left/right),这种笛卡尔积规则会相应变化吗?请构造相应例子。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值