You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取Pandas DataFrame中每月访问量最高的house_id

问题描述

拥有如下Pandas DataFrame:

visit_date|house_id
----------+---------
2017-12-27|892815605
2018-01-03|892807836
2018-01-03|892815815
2018-01-03|892812970
2018-01-03|892803143
2018-01-03|892815463
2018-01-03|892816168
2018-01-03|892814475
2018-01-03|892813594
2018-01-03|892813557
2018-01-03|892809834
2018-01-03|892809834
2018-01-03|892803143
2018-01-03|892803143
2018-01-03|892800500
2018-01-03|892806236
2018-01-03|892810789
2018-01-03|892797487
2018-01-03|892815182
2018-01-03|892814514
2018-01-03|892778046
2018-01-03|892809386
2018-01-03|892816048
2018-01-03|892816048
2018-01-03|892816078
2018-01-03|892810643

需要找出每个月访问量最高的房屋ID(house_id)。尝试过groupby操作但未得到预期结果,也试过逐个月份查询,但想找更高效的实现方式,同时希望能将月份数字对应为英文月份名称(如1对应January)。

解决方案

步骤1:处理日期,提取月份信息

先确保visit_date为datetime类型,再提取月份数字和英文名称:

import pandas as pd

# 转换日期列格式
df_1['visit_date'] = pd.to_datetime(df_1['visit_date'])
# 添加月份数字列
df_1['month_num'] = df_1['visit_date'].dt.month
# 添加英文月份名称列
df_1['month_name'] = df_1['visit_date'].dt.month_name()

步骤2:统计各房屋每月访问量

按月份(数字+名称)和房屋ID分组,统计访问次数:

# 分组统计,并重命名计数列
monthly_counts = df_1.groupby(['month_num', 'month_name', 'house_id'])['visit_date'].count().rename('visit_count').reset_index()

步骤3:筛选每月访问量最高的房屋

提供两种高效实现方式,无需手动循环:

方法1:用idxmax定位最大值行

# 按月份分组,找到访问量最大的行索引
max_indices = monthly_counts.groupby('month_num')['visit_count'].idxmax()
# 提取对应行并按月份排序
top_houses = monthly_counts.loc[max_indices].sort_values('month_num')

方法2:用rank筛选排名第一的记录

# 按月份分组,对访问量降序排名(first表示并列时取最先出现的)
monthly_counts['rank'] = monthly_counts.groupby('month_num')['visit_count'].rank(ascending=False, method='first')
# 筛选排名第一的记录并排序
top_houses = monthly_counts[monthly_counts['rank'] == 1].sort_values('month_num').drop('rank', axis=1)

结果说明

处理后top_houses会包含以下信息:

month_nummonth_namehouse_idvisit_count
12December8928156051
1January8928031433
  • 若同一月份有多个房屋访问量并列最高,可将rank的method参数改为min,这样所有并列第一的记录都会被保留。
  • 上述方法一次性处理所有月份,比逐个查询效率高得多。

内容的提问来源于stack exchange,提问作者Bruhlickd

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 23:36:23