首页 > 解决方案 > 计算值/字符串是否在python中按日期重复出现

问题描述

我只想在重新出现时计算名称(字符串)。重新出现的值/字符串应按日期分组。我不想数第一次出现。

import pandas as  pd
df = pd.DataFrame()
df['date'] = ['2020-01-01', '2020-01-01','2020-01-01',  
              '2020-01-02', '2020-01-02', '2020-01-02', 
              '2020-01-03', '2020-01-03', '2020-01-03',
              '2020-01-04', '2020-01-04', '2020-01-04']
df['value'] = ['Abe', 'Abe', 'Abe', 
               'Abe', 'Ben', 'Abe', 
               'Ben', 'Ben', 'Coco',
               'Abe', 'Abe', 'Abe']
df


    date        value
0   2020-01-01  Abe
1   2020-01-01  Abe
2   2020-01-01  Abe
3   2020-01-02  Abe
4   2020-01-02  Ben
5   2020-01-02  Abe
6   2020-01-03  Ben
7   2020-01-03  Ben
8   2020-01-03  Coco
9   2020-01-04  Abe
10  2020-01-04  Abe
11  2020-01-04  Abe

所以,输出应该是这样的

    date        revisitors
1   2020-01-02  1
2   2020-01-03  1
3   2020-01-04  1

这是我尝试过的

df.groupby(["date"])["value"].nunique()

标签: pythonpandas

解决方案


你可以试试:

s = df.drop_duplicates(['date','value'])

s['value'].duplicated().astype(int).groupby(s['date']).sum()

输出:

date
2020-01-01    0
2020-01-02    1
2020-01-03    1
2020-01-04    1
Name: value, dtype: int64

推荐阅读