计算熊猫数据框中的相同日期

Nic*_*lia 3 python date pandas

我有一个带有日期列的数据框,我想创建一个新列,该列告诉我数据集包含多少个相同的日期。这是原始数据集的最小示例:

df1:

date         
2017/01/03     
2017/01/03     
2017/01/04     
2017/01/04     
2017/01/04     
2017/01/05     
Run Code Online (Sandbox Code Playgroud)

我想创建此date_count,因此目标数据集为:

df1:

date         date_count
2017/01/03     2
2017/01/03     2
2017/01/04     3
2017/01/04     3
2017/01/04     3
2017/01/05     1
Run Code Online (Sandbox Code Playgroud)

创建df1的实际代码:

dict1 = [{'date': '2017/01/03', 'date_count': 2},{'date': '2017/01/03',              'date_count': 2}, 
 {'date': '2017/01/04', 'date_count': 3},{'date': '2017/01/04',   'date_count': 3},
{'date': '2017/01/04', 'date_count': 3},{'date': '2017/01/05',    'date_count': 1}]
df = pd.DataFrame(dict1, index=['s1', 's2','s3','s1','s2','s3'])
Run Code Online (Sandbox Code Playgroud)

sac*_*cuL 5

这是mapgroupbysize一起使用的另一种方法:

>>> df
          date
s1  2017/01/03
s2  2017/01/03
s3  2017/01/04
s1  2017/01/04
s2  2017/01/04
s3  2017/01/05

df['date_count'] = df.date.map(df.groupby('date').size())

>>> df
          date  date_count
s1  2017/01/03           2
s2  2017/01/03           2
s3  2017/01/04           3
s1  2017/01/04           3
s2  2017/01/04           3
s3  2017/01/05           1
Run Code Online (Sandbox Code Playgroud)

  • 在小型数据帧上,映射会更快,而在大型数据帧上则不会。大概会切换约5万行。根据我刚刚所做的更改,`transform`将会变得更快 (3认同)
  • @ user3483203这就是我发现的 (2认同)