python - 连接两个数据帧并根据条件删除重复行

标签 python pandas dataframe concatenation

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

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

因此,如果两行 A 列和 B 列的值相同,我将只选取 C 列具有最大值的那一行。

最佳答案

您可以按 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 数据帧相关。

关于python - 连接两个数据帧并根据条件删除重复行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53770709/

相关文章:

python - 套接字输出被截断到下一个文件

Python - 计算来自 txt 文件的标签的行之间的时间差

python - 添加公式后使用 pandas/xlsxwriter 对列进行排序

python-3.x - 使用df索引范围的条件

python - 当原始矩阵具有奇数第二个索引时,为什么 NumPy 的 rfft2 的 irfft2 会导致矩阵少一列?

python - PyQt QMenu下拉方向

python - 查找 pandas 数据框中缺失的数据并用 NA 填充

python - 将 pandas 数据框插入 SQLite 表/使用数据框更新表

python - 在数据框 Pandas 中选择日期范围

python - 稀疏 hstack 的 Scipy 错误