pandas函数之merge_ordered
pandas.merge_ordered(left, right, on=None, left_on=None, right_on=None, left_by=None, right_by=None, fill_method=None, suffixes=('_x', '_y'), how='outer')
(1)参数
left:DataFrame
right:DataFrame
on:label or list。Filed names to join on,Must be found in both DataFrames
left_on:label or list,or array-like.
right_on:label or list,or array-like.
left_by:column name or list of column names.Group left DataFrame by group columns and merge piece by piece with right DataFrame
right_by:column name or list of column names.Group right DataFrame by group columns and merge piece by piece with left DataFrame.
fill_method:{'ffill',None},default None.Interpolation method for data.
suffixes:list-like,default is (“_x”, “_y”)
how:{‘left’, ‘right’, ‘outer’, ‘inner’,}, default ‘outer’
left: use only keys from left frame, similar to a SQL left outer join; preserve key order.
right: use only keys from right frame, similar to a SQL right outer join; preserve key order.
outer: use union of keys from both frames, similar to a SQL full outer join; sort keys lexicographically.
inner: use intersection of keys from both frames, similar to a SQL inner join; preserve the order of the left keys.
(2)举例
df1 = pd.DataFrame({"key": ["a", "c", "e", "a", "c", "e"],"lvalue": [1, 2, 3, 1, 2, 3],"group": ["a", "a", "a", "b", "b", "b"]})
key lvalue group
0 a 1 a
1 c 2 a
2 e 3 a
3 a 1 b
4 c 2 b
5 e 3 b
df2 = pd.DataFrame({"key": ["b", "c", "d"], "rvalue": [1, 2, 3]})
key rvalue
0 b 1
1 c 2
2 d 3
merge_ordered(df1, df2, fill_method="ffill", left_by="group")
key lvalue group rvalue
0 a 1 a NaN
1 b 1 a 1.0
2 c 2 a 2.0
3 d 2 a 3.0
4 e 3 a 3.0
5 a 1 b NaN
6 b 1 b 1.0
7 c 2 b 2.0
8 d 2 b 3.0
9 e 3 b 3.0
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律