數(shù)據(jù)清洗前的準(zhǔn)備工作:
粗略看一遍數(shù)據(jù),我們大致要做的數(shù)據(jù)處理有以下幾點(diǎn)(使用工具為anaconda和jupyter Note book):
1、由于文件有多個(gè),我們第一步就是要將文件進(jìn)行合并;
2、抓取下來(lái)之后deal_time和last_time的數(shù)據(jù)不是很干凈,所以我們選擇從time_list當(dāng)中提取出這兩個(gè)日期(并計(jì)算到掛牌時(shí)間到今天相隔幾天);
3、view列的數(shù)據(jù)需要分成三列(取前兩列關(guān)注人數(shù)和帶看次數(shù));
4、面積數(shù)據(jù)要轉(zhuǎn)換成數(shù)字;
5、裝修風(fēng)格取精裝、簡(jiǎn)裝和其他字段,平層和復(fù)式由于數(shù)據(jù)缺失比較多這一指標(biāo)就不考慮了;
6、年份里有‘未知年建\’字段,這個(gè)需要處理成‘未知年建’;
7、數(shù)據(jù)清洗前要?jiǎng)h除deal_time和last_time和totalcount(總的帶看次數(shù),網(wǎng)頁(yè)在詳情頁(yè)處都是顯示0,所以這一數(shù)據(jù)從view列里獲取)列;
8、area_subinfo列的樓型有較多的缺失數(shù)據(jù)(錄入的時(shí)候沒(méi)有錄入),把缺失數(shù)據(jù)都用其它填充;
9、price和total_price的價(jià)格單位不一樣需要注意;
10、數(shù)據(jù)清洗完成之后用漢字作為列名以便更具有可讀性。
這就是我們?cè)陂_(kāi)始正式的數(shù)據(jù)清洗之前的大致思路和準(zhǔn)備工作。
接下來(lái)我們開(kāi)始數(shù)據(jù)清洗:
1、讀取和拼接多個(gè)文檔的數(shù)據(jù):
使用的是os.path.join的方法。
2、提取time_list列的兩個(gè)日期
處理后新的兩列日期如圖:
這樣我們就完成了兩列日期的數(shù)據(jù)處理。
3、view列的三組數(shù)據(jù)的分列
把分開(kāi)的列重合合并到df里:
列名顯示的是0,1,2,可以更改列名,我們等到后面統(tǒng)一更改。
4、面積數(shù)據(jù)要轉(zhuǎn)換成數(shù)字
5、裝修風(fēng)格提取
6、建筑年份數(shù)據(jù)清洗
7、清洗建筑類型
8、選出關(guān)注人數(shù)和帶看兩列的數(shù)字
9、接著進(jìn)行重命名索引和列名
10、獲取當(dāng)前日期和把數(shù)據(jù)轉(zhuǎn)換成日期格式(使用pd.to_datetime)
獲取當(dāng)前日期:datetime.datetime.now().strftime('%Y-%m-%d')
11、刪除有空值的行
12、把數(shù)值部分的列轉(zhuǎn)換為浮點(diǎn)數(shù)
13、選取出我們需要的列并導(dǎo)出數(shù)據(jù)
這樣,整個(gè)數(shù)據(jù)清洗的過(guò)程就基本完成了,下一步我們將進(jìn)行相應(yīng)的數(shù)據(jù)分析,進(jìn)行數(shù)據(jù)分析之前也一樣要選出我們想要看到的指標(biāo)和做出的效果。