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

如何在Python中按相同入住和退房日期分组统计日期数据?

按入住/退房日期分组统计数据的Python实现方法

我希望基于相同的**入住日期(check in date)和退房日期(check out date)**对数据进行分组统计。

示例数据

import pandas as pd

guess = [1, 2, 3, 4, 5]
check_in = ['17/07/2021', '17/07/2021','17/07/2021', '18/07/2021','18/07/2021']
check_out = ['20/07/2021', '20/07/2021','22/07/2021', '24/07/2021', '24/07/2021' ]
data = pd.DataFrame({'guess':guess, 'check in date': check_in, 'check out date': check_out})

print(data)

模拟数据结构如下:

guesscheck in datecheck out date
0117/07/202120/07/2021
1217/07/202120/07/2021
2317/07/202122/07/2021
3418/07/202124/07/2021
4518/07/202124/07/2021

期望分组结果

按相同入住、退房日期分组后,以统计每组记录数为例,期望得到如下结果:

check in datecheck out datecount
17/07/202120/07/20212
17/07/202122/07/20211
18/07/202124/07/20212

可用的Python实现方法

1. Pandas groupby 方法(最常用)

Pandas是处理表格数据的首选工具,直接通过groupby指定分组列,再结合聚合函数即可完成统计:

# 按入住+退房日期分组,统计每组记录数
grouped_data = data.groupby(['check in date', 'check out date']).count().reset_index()
# 重命名统计列(可选)
grouped_data = grouped_data.rename(columns={'guess': 'count'})
print(grouped_data)

如果需要对guess列执行其他聚合操作(比如求和),替换count()为对应的函数即可:

# 统计每组guess的总和
grouped_sum = data.groupby(['check in date', 'check out date'])['guess'].sum().reset_index()

2. Pandas pivot_table 方法

透视表适合更复杂的多维度聚合场景,同样可以实现需求:

pivot_data = pd.pivot_table(
    data,
    index=['check in date', 'check out date'],
    values='guess',
    aggfunc='count'
).reset_index().rename(columns={'guess': 'count'})
print(pivot_data)

3. 原生Python实现(无第三方库依赖)

如果不想依赖Pandas,可以用字典手动完成分组统计:

from collections import defaultdict

group_dict = defaultdict(int)
# 遍历每行数据,按日期组合计数
for _, row in data.iterrows():
    date_key = (row['check in date'], row['check out date'])
    group_dict[date_key] += 1

# 转换为易读的列表格式
result = [
    {'check in date': key[0], 'check out date': key[1], 'count': value}
    for key, value in group_dict.items()
]
print(result)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 23:18:24