Ole*_*siy 6 python python-datetime pandas pandas-groupby
我有一个数据框,是我在 pandas 中创建的,按日期分组并按游乐设施进行总结。
date rides
0 2019-01-01 247279
1 2019-01-02 585996
2 2019-01-03 660631
3 2019-01-04 662011
4 2019-01-05 440848
.. ... ...
451 2020-03-27 218499
452 2020-03-28 143305
453 2020-03-29 110833
454 2020-03-30 207743
455 2020-03-31 199623
[456 rows x 2 columns]
Run Code Online (Sandbox Code Playgroud)
我的date专栏在datetime64[ns].
date datetime64[ns]
rides int64
dtype: object
Run Code Online (Sandbox Code Playgroud)
现在我想创建另一个数据框,按月份和年份分组(我有 2019 年和 2020 年的数据)并按乘车次数进行汇总。
理想输出:
Year Month Rides
2019 January 2000000
2020 March 1000000
Run Code Online (Sandbox Code Playgroud)
您可以从日期列中groupby获取dt.year和dt.month_name 。
print (df.groupby([df['date'].dt.year.rename('year'),
df['date'].dt.month_name().rename('month')])
['rides'].sum().reset_index())
year month rides
0 2019 January 2596765
1 2020 March 880003
Run Code Online (Sandbox Code Playgroud)
datetime还支持to_period转换,因此我们可以按月对所有内容进行分组。
df.groupby(df.date.dt.to_period('M')).agg('sum')
# rides
#date
#2019-01 2596765
#2020-03 880003
Run Code Online (Sandbox Code Playgroud)
在本例中,索引是 a PeriodIndex,它具有许多相同的datetime属性。
PeriodIndex(['2019-01', '2020-03'], dtype='period[M]', name='date', freq='M')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9141 次 |
| 最近记录: |