【问题标题】:Sum one column based on similarity of other column values in Python根据Python中其他列值的相似性对一列求和
【发布时间】:2021-06-27 08:18:57
【问题描述】:

我想根据另一列的相似性对一列求和。我尝试了下面的代码,但它给了我错误,并且它带来了所有的专栏。谁能帮帮我?

df ["sum"]=df.groupby(['id']).agg({'duration': sum}).reset_index()
df

df


x.     y.    m.      n.       duration      id
xx.    rr.   1.1.   4.4        66            2
xx.    rr.   1.1.   4.4        66            2
xx.    rr.   1.1    4.4        66            2
tt.    uu    2.2    4.4        10            3
tt.    uu    2.2    4.4        55            3

我想要的是:

x.     y.    m.      n.       duration           id
xx.    rr.   11     4.4        sum(66+66+66)      2
tt.    uu.   22.    4.4        sum(10+55)         2

【问题讨论】:

    标签: python pandas dataframe group-by


    【解决方案1】:

    如果需要id 的第一行,请使用GroupBy.transformDataFrame.drop_duplicates

    df["sum"] = df.groupby('id')['duration'].transform('sum')
    df1 = df.drop_duplicates('id')
    

    或按所有列聚合:

    df2 = df.groupby(['x.','y.','m.','n.', 'id'], as_index=False)['duration'].sum()
    

    【讨论】:

      猜你喜欢
      • 2014-05-07
      • 1970-01-01
      • 1970-01-01
      • 2020-09-17
      • 2021-01-09
      • 2020-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多