首页 > 解决方案 > 如何合并两个数据框并有条件地合并一列

问题描述

除了一列之外,我有 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

标签: pythonpandasdataframe

解决方案


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

推荐阅读