資料分析
1.提出正確的問題
2.通過資料論證尋找答案
3.解讀資料、回答問題
1.jupyter notebook
jupyter notebook(此前被稱為 ipython notebook)是乙個互動式筆記本,支援執行 40 多種程式語言。jupyter notebook 的本質是乙個 web 應用程式,便於建立和共享文學化程式文件,支援實時**,數學方程,視覺化和 markdown。 用途包括:資料清理和轉換,數值模擬,統計建模,機器學習等等
pip3 install jupyter
2.charts
pip3 install charts
import charts 報錯的話
檢視charts的安裝路徑
import sys
print(sys.path)
找到類似下面的路徑
『/library/frameworks/python.framework/versions/3.5/lib/python3.5/site-packages』 然後進入目錄下的chart目錄,拷貝下圖這些檔案替換
3.生成charts需要的資料格式
如:series = [,]
//1.統計出有多少個地區
area_list =
for i in item_info.find():
area_index = list(set(area_list)) //將list陣列先轉換為set,再放入乙個新的list
print(area_index)
/**['西城', '燕郊', '密雲', '石景山', '海淀', '朝陽', '宣武', '平谷', '懷柔', '昌平', '附近', '大興', '順義', '延慶', '不明', '豐台', '北京周邊', '房山', '東城', '崇文', '通州', '門頭溝']
**///2.遍歷所有地區area_index,並統計area_list中每個地區的數量
post_times =
for index in area_index:
print(post_times)
/**[3376, 541, 386, 1958, 11768, 19224, 1803, 277, 381, 4963, 3, 4856, 1913, 164, 15505, 7991, 520, 1490, 3155, 1188, 4924, 464]
**///3.定義乙個函式來使用yield(迭代器)生成資料集
defdata_gen
(types):
length = 0
if length <= len(area_index):
for area,times in zip(area_index,post_times):
data =
yield data
length += 1
for i in data_gen('column'):
print(i)
/****/
//4.使用列表解析式生成charts餅圖需要的資料格式
series = [data for data in data_gen('column')]
charts.plot(series, show='inline', options=dict(title=dict(text='七日內北京城區二手物品發帖量')))
3.mongodb分片 slice
控制 匹配陣列返回資料長度
db.c.find({},) 取前三個 type
(-3 後三個);
db.c.find({},) 也可以是擷取(4-13);
for i in item_info.find(},,'_id':0,'price':0,'title':0}).limit(300):
print(i)
area使用了分片,取第乙個值
4.python時間累加
def
get_all_dates
(date1,date2):
##將開始、結束時間字串轉換為時間格式
the_date = date(int(date1.split('.')[0]),int(date1.split('.')[1]),int(date1.split('.')[2]))
end_date = date(int(date2.split('.')[0]),int(date2.split('.')[1]),int(date2.split('.')[2]))
days = timedelta(days=1)
## 1 day, 0:00:00 ##
while the_date <= end_date:
yield (the_date.strftime('%y.%m.%d')) ##生成器生成需要的時間格式
the_date = the_date + days ##迴圈的時間加一天
5.print()
print('#'
*20) #輸出20個#
6.生成折線圖資料
def
get_data_within
(date1,date2,areas):
for area in areas:
area_day_posts =
for date in get_all_dates(date1,date2): #呼叫時間累加函式
a = list(item_info.find())
each_day_post = len(a)
data =
yield data
for i in get_data_within('2015.12.24','2016.01.05',['朝陽','海淀','通州']):
print(i)
## 輸出的結果series
####
##
7.生成折線圖
#固定格式
options = ,
'title' : ,
'subtitle': ,
'xaxis' : ,
'yaxis' : }
}series = [i for i in get_data_within('2015.12.24','2016.01.05',['朝陽','海淀','通州'])]
8.aggregate聚合
pipeline = [
//$and並列條件匹配
,]}},
//將集合中的文件分組,以price欄位為組,統計結果放到counts欄位,'$sum'
:1 表示每次加1
}},//按照counts排序,從高到低排序
},//用來限制mongodb聚合管道返回的文件數
]
pipeline2 = [
,]}},
//將集合中的文件分組,以cates欄位切片,取陣列中的第三個數,統計結果放到counts欄位,'$sum'
:1 表示每次加1
,'counts'
:}},}]
pipeline = [
//pub_date在'2015.12.25','2015.12.27'兩個時間內的
},]}},,
,'counts'
:}},},]
Python爬蟲學習
最近由於 需要,用python寫了爬蟲爬取資料。在這個過程中,認識到學習一門語言最好的辦法是動手,別無技巧。在動手程式設計的過程中,遇到了很多意想不到的問題,當然也學習了很多書本上不會講述的知識,感覺這才是真正的學習知識。在這個過程中,遇到的乙個問題讓我花費了很久時間,留下了很深的印象。擔心會隨著時...
Python學習 爬蟲
在搜尋python知識的時候一直看到爬蟲相關知識,感覺挺好玩的,打算簡單了解一下。1 找到伺服器主機,向伺服器發出乙個請求,伺服器經過解析之後,傳送給使用者的瀏覽器 html js css 等檔案,瀏覽器解析出來,使用者便可以看到形形色色的了。因此,使用者看到的網頁實質是由 html 構成的,爬蟲爬...
python爬蟲學習
例如列印當前時間 from datetime import datetime print datetime.now 或者import datetime print datetime.datetime.now html結構 html head body html head a useful page ...