數據獲取和處理

http://tushare.org/        財經數據html

http://archive.ics.uci.edu/ml      機器學習html5

文本數據mysql

csv和txtsql

  讀取mongodb

import pandas as pd
df=pd.read_csv('xx.csv')
df=pd.read_table('xx.csv',sep=',')

list(open('xx.txt'))
df=pd.read_table('xx.txt',sep='\s+')
View Code

  分片/塊讀取文本數據數據庫

import pandas as pd
pd.read_csv('xx.csv',nrows=5) #讀取5行
pd.read_csv('xx.csv',chunksize=5) #一批100個
View Code

  把數據寫入文本格式json

import pandas as pd
import numpy as np
from pandas import Series
data.to_csv('out.csv',sep='|',na_rep='NULL') #分隔符|,na值填充爲NULL

dates=pd.date_range('1/1/2000',periods=7) #從2000/1/1開始,要7天數據
ts=Series(np.arange(7),index=dates)
ts.to_csv('tserties.csv')
View Code

  手動讀寫數據(按要求):資源有限的時候,如30w多條的數據,吃內存 瀏覽器

 1 import csv
 2 #一行一行讀
 3 f=open('xx.csv')
 4 reader=csv.reader(f)
 5 for line in reader:
 6     print(line)
 7 
 8 lines=list(csv.reader(open('xx.csv')))
 9 header,values=lines[0],lines[1:]
10 data_dict={h:v for h,v in zip(header,zip(*values))}
View Code

JSON格式的數據session

 1 import json
 2 obj=\
 3 """
 4 {"姓名":"張三",
 5 "住處":["天朝","挖煤國"]
 6 }
 7 """
 8 
 9 result=json.loads(obj) #字符串-》json
10 print(result)
11 print(result['住處'][0])
12 
13 asjson=json.dumps(obj) 
14 print(asjson)
View Code

xml和HTML機器學習

   html:beautifulSoup獲取要找的元素

  xml:lxml解析

二進制格式

不方便人看,可是性能更好,方便存儲

import pandas as pd
frame=pd.read_csv('xx.csv')
frame.to_pickle('frame_pickle') #以二進制寫進去
View Code

2 數據庫相關操做

  2.1sqlite數據庫:import sqlite3

  2.2 mysql:import MySQLdb  必定要commit才能夠執行

  2.3 memcache

  2.4 mongodb

 

3 爬蟲

庫Requests

 1 import requests
 2 from bs4 import BeautifulSoup
 3 
 4 #添加代理:反爬,不斷更換代理IP
 5 proxies={
 6     "http":"http://10.10.1.10:3128",
 7     "https":"http://10.10.1.10:1080"
 8 }
 9 #代理須要帳戶和密碼
10 # proxies={
11 #     "http":"http:user:pass@10.10.1.10:3128/",  
12 # }
13 content=requests.get("http://news.qq.com/",proxies=proxies).content
14 
15 soup=BeautifulSoup(content,"html5lib",from_encoding="GB2312")
16 
17 samples=soup.find_all("a")
18 for sample in samples:
19     print(sample.get_text())
View Code

模擬登錄

from bs4 import BeautifulSoup
import requests
s=requests.session()
data={'user':'用戶名','passdw':'密碼'}
res=s.post('https://www.douban.com/accounts/login?source=main',data)
#而後就能夠抓取你要的內容了
View Code

案例:鏈家網抓取

設置請求頭部信息,設置爲瀏覽器

抓取列表頁信息:time.sleep(1)

用bs4解析頁面內容

清洗數據並整理到數據表中

  pandas.DataFrame

  對數據分隔

  合併分裂結果,pd.merge

相關文章
相關標籤/搜索