【问题标题】:How to delete duplicates, but aggregating sums of repeated rows (Python or Excel)如何删除重复项,但汇总重复行的总和(Python 或 Excel)
【发布时间】:2017-12-09 05:17:12
【问题描述】:

例如,我有一个 SymbolQuantity 列。

AAA 1000000
AAA 1000000
AAA 1000000
BBB 5000000
CCC 1000000
CCC 1000000

基本上看起来像

AAA 3000000
BBB 5500000
CCC 2000000

在Rayhane的建议下尝试:

import pandas as pd
a = pd.read_csv("file.csv")
df = pd.DataFrame(a)
df['Quantity'] = df.groupby(['Symbol']).transform('sum')
df.drop_duplicates(inplace=True)

奇怪的是,代码看起来可以正常工作,但行数保持不变。 (5000 行,我预计它会下降到 2000 行)。有人可以验证我的代码吗?

【问题讨论】:

  • 能否说得更具体些?
  • 你愿意使用 pandas 库吗?
  • 是的,我想知道 pandas 包中是否有一个简单的命令
  • 另外,对于格式错误,我深表歉意。第一次发帖!现在应该更好看。
  • 您是否还需要帮助从您的 excel 文件读取数据帧,或者是否已处理好?

标签: python excel


【解决方案1】:

在这里你可以这样做:

df['Quantity'] = df.groupby(['Symbol']).transform('sum')
df.drop_duplicates(inplace=True)

文档:

transform

groupby

drop_duplicates

输入:

  Symbol  Quantity
0    AAA   1000000
1    AAA   1000000
2    AAA   1000000
3    BBB   5000000
4    CCC   1000000
5    CCC   1000000

现在如果你打印(df):

  Symbol  Quantity
0    AAA   3000000
3    BBB   5000000
4    CCC   2000000

如果你愿意,你甚至可以reset the index

df.reset_index(drop=True,inplace=True)

输出变成:

  Symbol  Quantity
0    AAA   3000000
1    BBB   5000000
2    CCC   2000000

【讨论】:

  • 没问题,如果它适合您未来用户的需求,请随时接受答案@hiimarksman
猜你喜欢
  • 2018-07-25
  • 2014-12-12
  • 1970-01-01
  • 1970-01-01
  • 2013-09-06
  • 2023-01-31
  • 1970-01-01
  • 2021-02-11
  • 1970-01-01
相关资源
最近更新 更多