python - 如何合并两个数据框并有条件地合并一列
问题描述
除了一列之外,我有 2 个相同的数据框。我希望将两者合并在一起并有条件地接受该列的值。在这种情况下,我正在寻找两者中的最大值,但通常任何条件都是理想的。
import pandas as pd
df1 = pd.DataFrame([['Tom', 30], ['Jane', 40], ['Barry', 22], ['Kelly', 15]])
df2 = pd.DataFrame([['Tom', 10], ['Jane', 50], ['Barry', 22]])
df1:
0 1
0 Tom 30
1 Jane 40
2 Barry 22
3 Kelly 15
df2
0 1
0 Tom 10
1 Jane 50
2 Barry 22
我希望最终得到一个将两者合并并取第 1 列最大值的数据框。
例子:
0 1
0 Tom 30
1 Jane 50
2 Barry 22
3 Kelly 15
解决方案
Merge the data, setting how
as outer
, before grouping to get the max
:
df1.merge(df2, how='outer').groupby(0, as_index = False, sort=False).max()
0 1
0 Tom 30
1 Jane 50
2 Barry 22
3 Kelly 15
推荐阅读
- google-cloud-platform - BigQuery GetQuery 结果 API 给出重复条目
- shell - 我在 gnome manjaro 扩展的环境中有一个错误,有人可以帮助我吗?
- pytorch - 在pytorch中机器学习后如何计算给定图像的百分比?
- c# - 如何在.net 5中将outlook连接到c#
- reactjs - 尝试使用 react 17 安装 webpack 5 以进行模块联合,在 npm install 上出现此错误
- c# - 带有 TPT 的 EF Core 5 用于 IdentityUser
- android - Recycler 视图在数据更新时刷新,没有任何变化
- python - 为什么无限循环不在多处理中运行?
- dynamic - 此表达式的类型为 'a -> 'a 数组数组,但表达式应为 'b 数组类型
- r - 根据它们的常见程度更改 ggplot2 热图 y 轴中因子的顺序