坑DIE的住建局再一次不限富豪限刚需,公布了深圳市住宅小区二手住房成交参考价格,买房更难,首付更难凑。。。
数据挖掘基础之数据清理:用python把深圳二手房参考价PDF保存为EXCEL,以便其他分析工具可以基于此excel做统计分析和画图,比如tableau。
前言
机器学习的基础内容:数据清洗。结合实际生活场景,提升学习乐趣。
深圳住建局再一次不限富豪限刚需,公布了深圳市住宅小区二手住房成交参考价格,该价格以PDF的形式发布于官网。
我们很多分析和统计工具无法读取pdf文件,绝大部分支持读取excel。因此我们本次就把pdf转化成excel供后续分析使用。
一、明确目标
把pdf转化成excel。
pdf的格式如下:
excel格式如下:
pandas 是基于NumPy 的一种工具,该工具是为了解决数据的分析问题。
二、使用步骤
1.事前处理
pdf肯定无法被python读取,python可以读取txt,因此,我们先打开pdf文件,然后使用快捷键ctrl+A全选, 然后复制ctrl +C,新建一个txt文件,粘贴ctrl+V,就把pdf文件粘贴到了txt中,此时数据还没有固定的格式,如下:
我们删除表头,剩下的数据就比较规整了,就可以用python进行读取和处理了。我们保存编辑后的txt为:深圳参考价 python处理.txt。下载地址和提取码:1234
2.读入数据
代码如下:
import pandas as pd
import numpy as np
import sys
import string
# 先把深圳二手房房价PDF拷贝到TXT中,去掉标题
# read txt method
f = open("./深圳参考价 python处理.txt")
line = f.readline()
xuhao,quyu,jiedao,xiangmumingchen,danjia = [],[],[],[],[] #定义:序号、行政区、街道、项目名称、单价数组
i = 0 #记录有效项目的行数
while line:
i = i + 1
print(i, line)
if line.startswith('- '): #跳过页数的文字 ,如第17页:- 17 -
i = i - 1
line = f.readline()
continue
line = line.replace('\n', '') #替换换行符
if i % 5 == 1:
xuhao.append(line)
elif i % 5 == 2:
quyu.append(line)
elif i % 5 == 3:
jiedao.append(line)
elif i % 5 == 4:
xiangmumingchen.append(line)
elif i % 5 == 0:
danjia.append(line)
else:
print('culculate is wrong!')
line = f.readline()
f.close()
mydict = {'序号': xuhao, '行政区': quyu, '街道': jiedao, '项目名称': xiangmumingchen, '成交参考价格 (元/平方米)': danjia}
df = pd.DataFrame(mydict) #转换成datafreme,以便输出excel
print(df)
df.to_excel('./深圳市住宅小区二手住房成交参考价格表.xlsx')
然后运行,就能得到如下的excel了:下载地址和提取码:1234。
总结
数据清洗是机器学习的基础,本文仅仅简单介绍了pandas清洗数据的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。