【问题标题】:create a new dataframe based on given dataframe [duplicate]根据给定的数据框创建一个新的数据框[重复]
【发布时间】:2023-03-20 02:33:01
【问题描述】:

我有一张如下所示的表格:

user id observation
25 2
25 3
25 2
23 1
23 3

期望的结果是:

user id observation retention
25 7 3
23 4 2

我想保留具有唯一 ID 的用户 ID 列,并有另一列显示此 ID 在数据集中出现了多少次,以汇总观察列值。

任何帮助将不胜感激 谢谢

【问题讨论】:

    标签: python pandas dataframe


    【解决方案1】:

    你必须使用group by:

    import pandas as pd 
    
    d = {'user id': [25,25,25,33,33], 'observation': [2,3,2,1,3]}
    
    # get the dataframe
    df = pd.DataFrame(data=d)
    
    df_new = df.groupby('user id').agg({"sum", "count"}).reset_index()
    
    # rename the columns as you desire
    df_new.columns = ['user id', 'observation', 'retention']
    df_new
    

    输出:

    【讨论】:

      【解决方案2】:

      使用groupby() 方法并将agg() 方法链接到它:

      outputdf=df.groupby('user id',as_index=False).agg(observation=('observation','sum'),retention=('observation','count'))
      

      现在,如果您打印 outputdf,您将获得所需的输出:

           user id    observation     retention
      0       23          4               2
      1       25          7               3
      

      【讨论】:

        猜你喜欢
        • 2018-07-01
        • 1970-01-01
        • 1970-01-01
        • 2017-03-20
        • 1970-01-01
        • 2020-11-13
        • 1970-01-01
        • 1970-01-01
        • 2020-06-14
        相关资源
        最近更新 更多