能正常读取外部数据表后我们开始做分析,用惯了Excel数据透视表的我即使用python也希望能pivot table一番。
首先我抓取到的数据字段大概是这样的:
Index(['行政区', 'pianqu', '片区', '小区', '格局', '面积', '楼层', '建成年代', '建成年', '楼体结构', '成交时间', '成交年', '成交月', '成交金额', '平米价', '朝向', '装修', '有无电梯'],dtype='object')
具体是
行政区 pianqu 片区 小区 格局 面积 楼层 建成年代 建成年 \
0 朝阳 dawanglu 大望路 后现代城 2室1厅 107.93 低楼层(共18层) 2004年建板塔结合 2004
1 朝阳 dawanglu 大望路 珠江帝景伯爵山 2室1厅 90.19 顶层(共16层) 2008年建板楼 2008
2 朝阳 dawanglu 大望路 易构空间 2室1厅 68.79 高楼层(共28层) 2004年建塔楼 2004
楼体结构 成交时间 成交年 成交月 成交金额 平米价 朝向 装修 有无电梯
0 板塔结合 2018/1/11 2018 1 660 6.12 东南 精装 有电梯
1 板楼 2018/1/11 2018 1 790 8.76 南 精装 有电梯
2 塔楼 2018/1/8 2018 1 470 6.83 东北 精装 有电梯
想看看各个户型在各个行政区的均价:
mean_qprice=data_file.pivot_table(values='平米价',index='行政区',columns='格局',aggfunc='mean')
print (mean_qprice)
结果报错:“No numeric types to aggregate”
这就涉及到数据类型(文本、数值、日期……)
如何得知各个字段的类型?
data_file.dtypes
行政区 object
pianqu object
片区 object
小区 object
格局 object
面积 float64
楼层 object
建成年代 object
建成年 object
楼体结构 object
成交时间 object
成交年 int64
成交月 int64
成交金额 int64
平米价 object
朝向 object
装修 object
有无电梯 object
dtype: object
“平米价”的数据类型居然是object,不是数值当然无法计算,需要更改数据类型:
data_file['平米价'].astype(float)
再次检查数据类型:
data_file['平米价'].dtypes
output:
dtype('float64')
这就好了,再次执行pivot就好了,试试看~
(没有展示我的结果,因为源数据存在无效数据,还没会处理,基本方案是用均值替换,且看下回分解)
网友评论