【问题标题】:Merge rows that are mostly duplicate except for a column's binary value合并除列的二进制值外大部分重复的行
【发布时间】:2023-02-14 10:48:53
【问题描述】:

我正在清理电影数据库。它是通过将 4 个 CSV(4 个流媒体服务的电影)合并为一个而形成的。有些电影存在于两个或多个流媒体服务上,例如 Prime 和 Hulu。

我能够将其余列与以下内容合并: movies.groupby(compareColumns, group_keys=False)[allColumns].apply(lambda x: x.ffill().bfill())

但现在我剩下的行几乎相同,除了它们的 onPrime/onNetflix 值(0=服务不可用,1=服务可用)。

例如,我有两行是:

name onPrime onHulu otherColumn
Movie 1 1 0 X
Movie 1 0 1 X

如何系统地合并两行以获得下面所需的输出? (我还有其他不想受到影响的专栏)

name onPrime onHulu otherColumn
Movie 1 1 1 X

不确定如何通过 sum、bfill、ffill 或任何内置函数来完成。

我尝试了filledgroups.fillna(value=0, axis=0, inplace=True, limit=1),其中 filledgroups 只是用于试验的两行的数据框,但它为其他列填充了 0,而我只想用 1 替换 onPrime/onHulu 的 0。

【问题讨论】:

    标签: python pandas dataframe group-by


    【解决方案1】:

    分组依据姓名应该做的伎俩..

    df_grouped = df.groupby('name').max().reset_index()
    

    【讨论】:

      猜你喜欢
      • 2013-06-05
      • 1970-01-01
      • 1970-01-01
      • 2020-12-07
      • 1970-01-01
      • 2020-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多