【问题标题】:Keeping the latest date when counting uniques in another column在另一列中计算唯一性时保持最新日期
【发布时间】:2014-06-27 04:53:11
【问题描述】:

我有以下数据框:

             date                  name
0      20/06/2014            Allan Watt
1      20/06/2014            Cindy Mark 
2      20/06/2014         Luisa Mostert
3      19/06/2014            Allan Watt

我想最终得到以下数据框,它计算“名称”中的唯一值并使用最新的日期值。例如:

      latest_date                  name      count
0      20/06/2014            Allan Watt          2
1      20/06/2014            Cindy Mark          1 
2      20/06/2014         Luisa Mostert          1

目前,我正在通过以下方式添加“计数”列:

df = pd.DataFrame({'count': df.groupby(['name']).size()}).reset_index()

                   name      count
0            Allan Watt          2
1            Cindy Mark          1 
2         Luisa Mostert          1

但这会完全删除日期列。鉴于:

df = pd.DataFrame({'count': df.groupby(['name', 'date']).size()}).reset_index()

显然,也可以按日期分组:

      latest_date                  name      count
0      20/06/2014            Allan Watt          1
1      20/06/2014            Cindy Mark          1 
2      20/06/2014         Luisa Mostert          1
3      19/06/2014            Allan Watt          1

实现预期结果的最佳方法是什么?

【问题讨论】:

    标签: python pandas dataframe


    【解决方案1】:

    你可以这样做:

    df['count'] = 1
    df = df.groupby('name').agg({'count':sum, 'date':max})
    df = df.rename(columns={'date':'latest_date'})
    df = df.reset_index()
    
    print df
    
            name       count latest_date
    
    0     Allan Watt       2  20/06/2014
    1     Cindy Mark       1  20/06/2014
    2     Luisa Mostert    1  20/06/2014
    

    【讨论】:

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