登录    关于
马育民老师的博客

马育民的博客

QQ:65242847

pandas数据可视化

介绍

本文讲解数据可视化

数据文件:

下载:

https://gitee.com/65242847/pic/blob/master/csv/58%E5%90%8C%E5%9F%8E%E4%BA%8C%E6%89%8B%E6%88%BF%E6%95%B0%E6%8D%AE-%E6%B8%85%E6%B4%97.csv

散点图-价格与面积

二手房价格与面积散点图,横轴为面积(平米),纵轴为价格(万元)。从图中可以看出,价格与面积符合正相关关系。

数据点分布比较集中,大多数都在价格 30-150 万元,面积 40-120 平米区域内。

代码

import pandas as pd
import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']
df=pd.read_csv(r'C:\Users\mym\Desktop\jz\58同城二手房数据-清洗.csv',encoding='gbk')

df.plot.scatter(x='mianji',y='jiage')

plt.xlabel('面积')
plt.ylabel('价格')

plt.show()

饼图-户型占比

户型饼状图,可以看出,2室1厅1卫 与 2室2厅1卫,一共占比接近90%。其他户型占比比较少。

代码


import pandas as pd
import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']

df=pd.read_csv(r'C:\Users\mym\Desktop\jz\58同城二手房数据-清洗.csv',encoding='gbk')


# 统计各个户型占比
res=df.groupby("geju")["biaoti"].count()
count=len(df)
print(count)
res=res/count*100

print(res)

#=======将百分比小于1的归类为其他
# 值小于1的行标签
mask_obs = res[res<1].index
print(mask_obs)

# 创建新的key:value对
mask_dict = dict.fromkeys(mask_obs, '其他户型')
print(mask_dict)
# 对标签改名
res = res.rename(mask_dict)  
# 按照geju分组求和
res=res.groupby("geju").sum()
# print(res[res>1])
# 排序
res=res.sort_values()
print(res)

res.plot(kind = 'pie',  # 选择图形类型
         autopct='%.1f%%'# 饼图中添加数值标签
         )

# plot方法对序列进行绘图
# res.plot(kind = 'pie', # 选择图形类型
#            autopct='%.1f%%', # 饼图中添加数值标签
#            radius = 1, # 设置饼图的半径
#            startangle = 180, # 设置饼图的初始角度
#            counterclock = False, # 将饼图的顺序设置为顺时针方向
#            title = '失信用户的受教育水平分布', # 为饼图添加标题
#            wedgeprops = {'linewidth': 1.5, 'edgecolor':'green'}, # 设置饼图内外边界的属性值
#            textprops = {'fontsize':10, 'color':'black'} # 设置文本标签的属性值
#           )
# 不显示y轴标签
plt.ylabel('')
plt.show()

柱状图

房屋朝向柱状图,横轴为房屋朝向,纵轴为房源数量。可以看出,房屋朝向主要是坐北朝南的

代码

import pandas as pd
import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']

df=pd.read_csv(r'C:\Users\mym\Desktop\jz\58同城二手房数据-清洗.csv',encoding='gbk')


# 统计朝向
res=df.groupby("chaoxiang")["biaoti"].count()
# 排序
res=res.sort_values()
print(res)

res.plot(kind = 'bar')


# 不显示y轴标签
plt.xlabel('')
plt.show()

折线图

各区划二手房平均价格,横轴是各区划,纵轴是平均价格,可以看出净月区平均价格最高

代码

import pandas as pd
import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']

df=pd.read_csv(r'C:\Users\mym\Desktop\jz\58同城二手房数据-清洗.csv',encoding='gbk')


# 统计各个区划二手房平均价格
res=df.groupby("quhua")["jiage"].mean()
# 排序
res=res.sort_values()
print(res)

res.plot()


# 不显示y轴标签
plt.xlabel('')
plt.show()

感谢:
https://www.cnblogs.com/hello-zy/p/9440417.html
https://blog.csdn.net/weixin_42492529/article/details/99709295
https://wenku.baidu.com/view/5be8fd5412661ed9ad51f01dc281e53a59025179.html#


原文出处:https://malaoshi.top/show_1EF6Vg9vcnjN.html