import pandas as pd
import numpy as np
df=pd.read_table('data\lianjiahouselist.txt',sep=';')
df.columns=['编号','省','市','区县','位置','详细地址','单价','总价','户型','楼层','面积','户型结构','套内面积','建筑类型','朝向','建筑结构','装修类型','梯户比','有无电梯','上传时间','房屋类型','住宅类型','抵押情况']
df.reindex(columns=df.columns)
df.head(2)
df.describe()
df.info()
data=df[['省','市','区县','位置','详细地址','单价','户型','楼层','面积']]
data
data.isnull().sum()
data.isnull().any()
data[data['区县'].isnull()]
data[data['区县'].isnull()]=data[data['区县'].isnull()].fillna(method='ffill',axis=1)
data.isnull().any()
data[data['户型'].isnull()]
data[data['户型'].isnull()]=data[data['户型'].isnull()].fillna('#')
data.isnull().any()
data.duplicated().sum()
data=data.drop_duplicates()
data
sum(~(data['单价'].str.contains('元/平米')))
data.单价.str.replace('元/平米','').astype(np.float32)
np.round(data.单价.str.replace('元/平米','').astype(np.float32).map(lambda x:x/10000),2)
data=data.assign(单价=np.round(data.单价.str.replace('元/平米','').astype(np.float32).map(lambda x:x/10000),2))
data
data.单价.min()
data.单价.max()
data=data[data.单价>0]
data
data.单价.min()
bins=[0,1,2,3,4,5,7,10,15,20]
pd.cut(data.单价,bins)
pd.cut(data.单价,bins).value_counts()
pd.cut(data.单价,bins).value_counts().plot.bar(rot=20)
dataBeijing=data[data.省=='北京']
dataBeijing
pd.cut(dataBeijing.单价,bins).value_counts().plot.bar(rot=20)