【问题标题】:Handling duplicate rows in python处理python中的重复行
【发布时间】:2015-05-14 06:15:57
【问题描述】:

我有一个日期框架 df,假设有 5 列:a、b、c、d、e。

  a   b   c    d    e

  1   6   x    8    3
  2   3   y    2    3
  3   5   d    1    1
  3   4   g    3    4
  5   3   z    3    1

这就是我想要做的,对于 a 列具有相同值的所有行,我想删除重复项,但 b 列的值应该在这些行中求和,对于其余列,我想保留第一个值。

最终数据框将是:

  a   b   c    d    e

  1   6   x    8    3
  2   3   y    2    3
  3   9   d    1    1
  5   3   z    3    1

如何做到这一点?

【问题讨论】:

  • 您可以使用pandas.DataFrame.groupby 方法收集与任何给定列中唯一值对应的行,然后使用groupby 对象的aggregate 方法将这些汇总。但这可能不适用于列c,因为它包含字符串。您可能需要单独处理。

标签: python pandas dataframe


【解决方案1】:

我会将在“a”上分组并求和的结果分配给“b”列,然后您可以删除重复项:

In [171]:

df['b'] = df.groupby('a')['b'].transform('sum')
df
Out[171]:
   a  b  c  d  e
0  1  6  x  8  3
1  2  3  y  2  3
2  3  9  d  1  1
3  3  9  g  3  4
4  5  3  z  3  1
In [172]:

df.drop_duplicates('a')
Out[172]:
   a  b  c  d  e
0  1  6  x  8  3
1  2  3  y  2  3
2  3  9  d  1  1
4  5  3  z  3  1

【讨论】:

    猜你喜欢
    • 2016-10-16
    • 1970-01-01
    • 2013-08-15
    • 1970-01-01
    • 2015-10-03
    • 1970-01-01
    • 2021-04-03
    • 2021-08-27
    • 2016-09-27
    相关资源
    最近更新 更多