Pandas 二手房数据清洗、可视化、实战练习(带源码、资源)

您所在的位置:网站首页 怎样才会感冒最快 Pandas 二手房数据清洗、可视化、实战练习(带源码、资源)

Pandas 二手房数据清洗、可视化、实战练习(带源码、资源)

2024-02-07 05:12| 来源: 网络整理| 查看: 265

Pandas 二手房数据清洗、可视化、实战 数据清洗

使用pandas打开csv文件

import pandas as pd data=pd.read_csv('data.csv') print(data)

image-20211212151643955

第一步 设置索引列 import pandas as pd data=pd.read_csv('data.csv',index_col=0) print(data)

index_col=0指定第一列为索引列

image-20211212151827163

第二步 去单位(总价、建筑面积、单价字段)

使用map或apply 加lambda表达式 清洗数据

map(apply) 会编码元素

lambda表达式的作用是: 使用字符串的replace 将指定的字符替换成‘’(空)

再使用.astype(float)将数据转成数值型

import pandas as pd data=pd.read_csv('data.csv',index_col=0) data['总价']=data['总价'].map(lambda x:str(x).replace('万','')) data['总价']=data['总价'].astype(float) data['建筑面积']=data['建筑面积'].apply(lambda x:str(x).replace('平米','')) data['建筑面积']=data['建筑面积'].astype(float) data['单价']=data['单价'].apply(lambda x:str(x).replace('元/平米','')) data['单价']=data['单价'].astype(float) print(data)

image-20211212153703770

数据分析 各区均价分析

data.groupby(‘区域’)将数据按区域分组

可以使用get_group(‘二道’)使用子组的数据、

df=data.groupby('区域') print(df.get_group('二道'))

image-20211212160038698

df[‘单价’].mean().round(2)

获取使用单价的平均值 并保留2位小数点

# 各区均价分析 df=data.groupby('区域') ave=df['单价'].mean().round(2) print(ave)

image-20211212155206487

各区房子比

使用apply遍历

使用lambda表达式 除总数

df=data.groupby('区域').size() home=df.apply(lambda x:x/df.values.sum()*100) print(home)

image-20211212161320430

装修程度 df=data.groupby('装修').size() print(df)

image-20211212161816922

数据可视化 各区均价 # 各区均价分析 df=data.groupby('区域') ave=df['单价'].mean().round(2) plt.rcParams['font.sans-serif'] = ['FangSong'] plt.bar(ave.index,ave.values) plt.title('各区均价') plt.xlabel('区域') plt.ylabel('均价') plt.savefig('各区均价') plt.show()

image-20211212163808595

各区房子 # 各区房子比 df=data.groupby('区域').size() home=df.apply(lambda x:x/df.values.sum()*100) plt.rcParams['font.sans-serif'] = ['FangSong'] plt.title('各区房子比') plt.pie(home.values,labels=home.index) plt.show()

image-20211212183758616

装修 df=data.groupby('装修').size() plt.rcParams['font.sans-serif'] = ['FangSong'] plt.title('装修程度') plt.bar(df.index,df.values) plt.show()

image-20211212184217133

全部代码 import pandas as pd import matplotlib.pyplot as plt data=pd.read_csv('data.csv',index_col=0) # 数据清洗 data['总价']=data['总价'].map(lambda x:str(x).replace('万','')) data['总价']=data['总价'].astype(float) data['建筑面积']=data['建筑面积'].apply(lambda x:str(x).replace('平米','')) data['建筑面积']=data['建筑面积'].astype(float) data['单价']=data['单价'].apply(lambda x:str(x).replace('元/平米','')) data['单价']=data['单价'].astype(float) # 数据分析 # 各区均价分析 # df=data.groupby('区域') # ave=df['单价'].mean().round(2) # plt.rcParams['font.sans-serif'] = ['FangSong'] # plt.bar(ave.index,ave.values) # plt.title('各区均价') # plt.xlabel('区域') # plt.ylabel('均价') # plt.savefig('各区均价') # plt.show() # 各区房子比 # df=data.groupby('区域').size() # home=df.apply(lambda x:x/df.values.sum()*100) # plt.rcParams['font.sans-serif'] = ['FangSong'] # plt.title('各区房子比') # plt.pie(home.values,labels=home.index) # plt.show() # 装修程度 df=data.groupby('装修').size() plt.rcParams['font.sans-serif'] = ['FangSong'] plt.title('装修程度') plt.bar(df.index,df.values) plt.show() 资源文件

csv下载链接



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3