import pandas as pd
import numpy as np
df=pd.read_table('D:/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['区县'].isna()
data[data['区县'].isna()]
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[data['区县'].isnull()]
data.duplicated().sum()
data=data.drop_duplicates()
data
data.info()
sum(~(data['单价'].str.contains('元/平米')))
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()
c=[0,1,2,3,4,5,7,10,15,20]
pd.cut(data.单价,c)
pd.cut(data.单价,c).value_counts().plot.bar(rot=20)
beijing=data[data.省=='北京']
beijing
pd.cut(beijing.单价,c).value_counts().plot.bar(rot=20)
data=data.assign(面积=np.round(data.面积.str.replace('㎡','').astype(np.float32)))
data
data.面积.max()
data.面积.mean()
data=data[data.面积<300]
data
data.to_csv("data/house.csv")
c=[0,50,100,150,200,250,300]
pd.cut(data.面积,c).value_counts().plot.bar(rot=20)