python读取文件常见问题2(Mac版)

能正常读取外部数据表后我们开始做分析,用惯了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就好了,试试看~
(没有展示我的结果,因为源数据存在无效数据,还没会处理,基本方案是用均值替换,且看下回分解)

你可能感兴趣的:(python读取文件常见问题2(Mac版))