【问题标题】:Sum up a column in Pandas DataFrame if a duplicate row exists如果存在重复行,则总结 Pandas DataFrame 中的一列
【发布时间】:2020-09-30 02:24:03
【问题描述】:

我有一个相当大的数据集,看起来类似于下面。此数据集包含 10 多个列,它们都具有相同的值,然后是一个包含唯一值的“时间”列。

我正在尝试为重复的每一行总结时间列,对不重复的行不做任何事情。

df1 = pd.DataFrame({'names':['Paul','George','Paul','John'],
                   'Time':[10,41,22,10],
                  'Date':['10/2/20', '10/1/20', '10/2/20','10/1/20']})

我尝试对所有可能包含重复项的列进行 groupby,然后汇总 Time 并重置索引,但是行数少于将其与手动完成的电子表格进行比较时的行数.

提前感谢您的任何建议!

【问题讨论】:

  • 请用您的预期输出更新问题。

标签: python-3.x pandas sum duplicates pandas-groupby


【解决方案1】:

IIUC,

首先,我们创建所有列的列表并从中删除Time,因为这是我们将对其执行操作的列。这个想法是对值求和,如果没有重复,那么值将是相同的,如果有重复的名称,就像在 Paul 的情况下,值将被求和。

group_cols = df1.columns.tolist()
group_cols.remove('Time')

df2 = df1.groupby(group_cols,as_index=False)['Time'].sum()

print(df2)

    names     Date  Time
0  George  10/1/20    41
1    John  10/1/20    10
2    Paul  10/2/20    32

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-09
    • 2016-03-03
    • 2019-06-17
    • 1970-01-01
    • 2019-07-03
    • 1970-01-01
    • 2022-07-28
    相关资源
    最近更新 更多