连接两个数据框并根据条件删除重复的行

时间:2018-12-13 22:02:01

标签: python pandas dataframe concat

我正在尝试连接两个数据帧,如果发生重复,我想考虑具有列C最大值的行 我尝试了以下命令:

df = pd.concat([df1, df2]).max(level=0)

因此,如果两行在A和B列中具有相同的值,那么我将以C列具有最大值的那一行为准。

1 个答案:

答案 0 :(得分:0)

您可以按C列排序,然后按A和B列删除重复项:

df = pd.concat([df1, df2])\
       .sort_values('C')\
       .drop_duplicates(subset=['A', 'B'], keep='last')

您的尝试有一些误解:

  1. pd.DataFrame.max用于计算最大值,而不是过滤数据框。
  2. level参数仅与MultiIndex数据帧相关。