Pandas 中常用的统计计算、排序、分组聚合
一:常用统计值计算
1.数据加载
用pd.read_csv()加载数据,head()查看前几行数据,columns获取字段名(例如:电影颜色、导演名、评分等)
2.基础查看
用shape查看数据行列数,describe().T对数值列进行统计(如最大值、最小值、平均值等)并转置,describe(include = ‘all’)统计所有列(包括类别型和字符串型),describe(include = object)仅统计类别和字符串型列。
3.info方法
通过info()了解名字段的非空值数量、数据类型(如object、float64等)、是否缺失及内存占用情况。
二:常用排序方法
1.筛选
筛选出imdb中评分最高的100部电影,先用nlargest(100,‘imdb_score’),再筛选评分最低的5部电影 nsallest(5,‘budget’)
2.分组筛选
先按年份和评分排序(sort_values([‘title_year’,'imdb_score'],ascending = False)),再用drop_duplicates(subset = 'title_year')去重。
3.按多条件排序并去重
对电影的年份、分级、预算多列排序(ascending
参数传入列表控制各列排序方式),再按年份和分级去重,提取每年每种分级中预算最少的电影。
三:数据分析
1.数据预处理
加载数据后,将中文列名替换成英文 (如 “区域” 改为district
、“价格” 改为price
等)。
2.数据查看
用head()方法查看前五行,info()方法查看列数据分布,describe()方法查看统计指标,shape查看数据形状。
3.具体分析场景
找租金最低和最高的房子:通过sort_values(by='price')
排序后取首尾,或用price.min()
/price.max()
结合loc
定位。
找最近新上的 10 套房源:按update_time
(更新时间)降序排序后取前 10 行。
分析看房人数:计算平均值(mean()
)、中位数(median()
),用groupby('view_num')
分组统计不同看房人数的房源数量。
数据可视化:用matplotlib
绘制柱状图(plot(kind='bar')
),展示看房人数对应的房源数量分布、房型分布等(需设置中文字体显示)。
其他分析:如找看房人数最多的朝向、最受欢迎的房型(按看房人数总和分组排序)、平均每平米租金(新增price_per_m2
列计算)、热门小区(按看房人数总和排序)、出租房源最多的小区(按小区分组统计房源数量)等。
代码示例:
#找租金最低,和租金最高的房子
house_data[house_data['price'] == house_data['price'].min()]
house_data[house_data['price'] == house_data['price'].max()]#排序来找
house_data.sort_values(by='price').head(1)
#根据房子类型分组排序,找出最优类型
tmp = house_data.groupby('house_type',as_index=False).agg({'view_num':'sum'})
tmp[tmp['view_num'] == tmp['view_num'].max()]#计算平均租房价格
house_data.loc[:,'price_per_m2'] = house_data['price']/house_data['area']
house_data['price_per_m2'].mean()#找热门小区
address_df = house_data[['address','view_num']].groupby(['address'],as_index = False).sum()
address_df.sort_values(by = 'view_num',ascending = False).head()
四:总结
1.常用统计量计算:info()
用于了解字段基本信息,describe()
用于计算数值型或全列的统计量。
2.排序与分组聚合:nlargest
/nsmallest
返回最大 / 最小的 n 个值,sort_values
按指定字段排序,groupby
用于分组,agg
用于分组后的聚合操作。