如何用Python处理Excel房产数据,按房间数排序、统计数量及平均房价
房屋Excel数据处理Python实现方案
核心依赖模块
pandas:结构化表格数据处理的首选库,原生支持Excel读写、排序、分组聚合等功能,无需手动实现复杂逻辑- 辅助依赖:
openpyxl(读写.xlsx格式文件)/xlrd(读写旧版.xls格式文件),是pandas操作Excel的底层依赖库
各需求对应实现方法
1. 按房间数排序
使用pandas的sort_values()方法,指定房间数对应的列作为排序依据即可,可通过参数控制升/降序:
# ascending=True为升序,False为降序;ignore_index=True重置排序后的行索引 df_sorted = df.sort_values(by='卧室数', ascending=True, ignore_index=True)
2. 统计各房间数对应的房屋总量
两种实现方式可选:
- 直接用
value_counts()统计指定列的取值出现频次 - 用
groupby()配合size()/count()做分组统计
示例代码:
# 方法1 room_cnt = df['卧室数'].value_counts().sort_index() # 方法2 room_cnt = df.groupby('卧室数').size()
3. 按房间数分组计算平均价格
使用groupby()配合mean()方法直接对总价列求分组平均值,也可以用agg()方法一次性完成套数统计、平均价格计算两个需求:
# 仅计算平均价格 avg_price = df.groupby('卧室数')['房屋总价'].mean().round(2) # 同时统计套数+平均价格 stat_result = df.groupby('卧室数', as_index=False).agg( 房屋总套数=('卧室数', 'count'), 平均总价=('房屋总价', lambda x: round(x.mean(),2)) )
完整示例代码
import pandas as pd # 读取本地Excel文件,替换为你自己的文件路径、工作表名 df = pd.read_excel('房屋数据.xlsx', sheet_name='Sheet1') # 1. 按房间数升序排序 df_sorted = df.sort_values(by='卧室数', ascending=True, ignore_index=True) # 2. 打印各居室对应的房屋总量 room_cnt = df['卧室数'].value_counts().sort_index() for room_num, cnt in room_cnt.items(): print(f"{room_num}居室房屋共有{cnt}套") # 3. 计算各居室平均价格并导出结果 stat_result = df.groupby('卧室数', as_index=False).agg( 房屋总套数=('卧室数', 'count'), 平均总价=('房屋总价', lambda x: round(x.mean(),2)) ) stat_result.to_excel('房屋统计结果.xlsx', index=False)
前置准备
执行以下命令安装依赖即可:
pip install pandas openpyxl
如果你的文件是.xls旧格式,把openpyxl替换成xlrd==1.2.0即可。
注意代码里的列名(「卧室数」「房屋总价」)需要替换成你自己Excel表中对应的实际列名。
内容的提问来源于stack exchange,提问作者alp
相关产品推荐
相关产品推荐

