如何将2个数据范围合并为顺序
我有2个dataframes
df_my ,看起来
Seq Grp
-----------
1 1
2 1
3 2
4 1
5 2
6 2
7 3
8 3
9 1
.
.
135 3
136 1
137 1
138 2
139 3
其他数据框是df_filer
df_filer
Seq Grp Alg
-------------------
1 1 J
3 2 F
7 3 Z
136 1 M
137 1 R
138 2 T
139 3 Y
我想将两个dataframes合并到1中,其中
1-如果df_my seq编号已经在df_filer中,则它应该与该数字合并为df_my,基于df_my和df_filter
2-如果df_my seq编号不在df_filer中,则应与同一GRP中的最小seq一起加入,
因此最终结果应该如下,
Seq Grp Alg
------------------
1 1 J
2 1 J
3 2 F
4 1 J
5 2 F
6 2 F
7 3 Z
8 3 Z
9 1 J
.
.
135 3 Z
136 1 M
137 1 R
138 2 T
139 3 Y
我尝试了这一点,但是它不会给我预期的结果,
df_Out = df_My.merge(df_Filter, axis=1), on='Grp')
任何想法如何实现这一目标?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如 merge_asof :
另一个选项是,您可以
left-merge
,然后使用groupby
+idxmin
创建一个从GRP到ALG的映射丢失值,然后填写:输出:
As @sammywemmy suggested, you could use
merge_asof
:Another options is, you can
left-merge
, then usegroupby
+idxmin
to create a mapping from Grp to Alg for the missing values, then fill:Output: