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

Python Dataframe子集筛选:查询特定日期内首字母A的酒店所属国家

解决步骤

首先确保你的date列是datetime类型(如果尚未转换):

import pandas as pd

# 转换date列为datetime格式,避免日期匹配出错
ad['date'] = pd.to_datetime(ad['date'])

1. 组合筛选条件

你需要同时满足两个核心条件:

  • 日期严格为2022年1月1日当天
  • 酒店名称以字母A开头(默认区分大小写,若要忽略大小写可添加case=False参数)

组合后的筛选代码如下:

# 构建筛选条件
filter_rules = (ad['date'] == '2022-01-01') & (ad['Hotel Name'].str.startswith('A'))

# 获取符合要求的数据集子集
target_data = ad.loc[filter_rules]

2. 统计各国符合条件的酒店数量

对筛选后的数据集按Country列分组,统计每组的酒店数量:

# 按国家分组,统计酒店数量并重置索引
country_hotel_count = target_data.groupby('Country')['Hotel Name'].count().reset_index(name='Hotel_Number')

3. 找出酒店数量最多的国家

通过排序或直接定位最大值的方式获取结果:

# 按酒店数量降序排序
sorted_result = country_hotel_count.sort_values(by='Hotel_Number', ascending=False)

# 提取排名第一的国家和数量
top_country = sorted_result.iloc[0]['Country']
top_number = sorted_result.iloc[0]['Hotel_Number']

print(f"2022年1月1日当天,名称以A开头的酒店数量最多的国家是{top_country},共{top_number}家")

也可以用更简洁的写法直接定位最大值:

max_row = country_hotel_count.loc[country_hotel_count['Hotel_Number'].idxmax()]
print(f"结果:{max_row['Country']},酒店数量:{max_row['Hotel_Number']}")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 08:15:44