本文介绍了在 pandas 数据框中计算相同的日期的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个带有日期列的数据框,我想创建一个新列来告诉我数据集包含多少个相同的日期。这是原始数据集的最小示例:
I have a dataframe with a date column and I would like to create a new column that tells me how many identical dates the dataset contains. This is a min example of the original data set:
df1:
date
2017/01/03
2017/01/03
2017/01/04
2017/01/04
2017/01/04
2017/01/05
我想创建此date_count,因此目标数据集为:
I would like to create this date_count, so the target data set is:
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
创建df1的实际代码:
The actual code to create 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'])
推荐答案
这里是使用以及:
Here is another method using map
along with a groupby
and size
:
>>> 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
这篇关于在 pandas 数据框中计算相同的日期的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!