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)
这是map与groupby和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
Run Code Online (Sandbox Code Playgroud)