如何按年月统计Pandas DataFrame行数并按日期从旧到新排序
Pandas 需求实现代码
需求1:按年月分组统计行数
你可以直接调用datetime列的dt.to_period('M')方法提取年月维度,再用分组计数即可:
# 统计结果的索引为Period类型年月(如2019-01) monthly_count = df.groupby(df['daate'].dt.to_period('M')).size().reset_index(name='行数') # 如果需要年月为字符串格式,可改用strftime格式化 monthly_count_str = df.groupby(df['daate'].dt.strftime('%Y-%m')).size().reset_index(name='行数')
上述代码中size()方法直接统计每个分组的总行数,最终输出结果和你的预期完全一致:2019-01对应2行,2020-01、2020-02各对应1行。
需求2:按日期从旧到新升序排序
调用sort_values方法指定按datetime类型的日期列排序即可,默认排序规则就是升序:
# 排序后重置索引,删除原有旧索引 df_sorted = df.sort_values('daate').reset_index(drop=True)
如果需要修改排序规则为降序,额外添加参数ascending=False即可。
内容的提问来源于stack exchange,提问作者MC2020
相关产品推荐
相关产品推荐

