http://tushare.org/ 财经数据
http://archive.ics.uci.edu/ml 机器学习
文本数据
csv和txt
读取
![数据获取和处理 数据获取和处理](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pLzE4N2IyZTFlZjdhNGIxZjA2MmRlNGJhZDVhZDU5MTNhMS5qcGc%3D.jpg?w=700&webp=1)
![数据获取和处理 数据获取和处理](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pLzE4N2IyZTFlZjdhNGIxZjA2MmRlNGJhZDVhZDU5MTNhMi5qcGc%3D.jpg?w=700&webp=1)
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+')
分片/块读取文本数据
![数据获取和处理 数据获取和处理](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pLzE4N2IyZTFlZjdhNGIxZjA2MmRlNGJhZDVhZDU5MTNhMS5qcGc%3D.jpg?w=700&webp=1)
![数据获取和处理 数据获取和处理](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pLzE4N2IyZTFlZjdhNGIxZjA2MmRlNGJhZDVhZDU5MTNhMi5qcGc%3D.jpg?w=700&webp=1)
import pandas as pd pd.read_csv('xx.csv',nrows=5) #读取5行 pd.read_csv('xx.csv',chunksize=5) #一批100个
把数据写入文本格式
![数据获取和处理 数据获取和处理](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pLzE4N2IyZTFlZjdhNGIxZjA2MmRlNGJhZDVhZDU5MTNhMS5qcGc%3D.jpg?w=700&webp=1)
![数据获取和处理 数据获取和处理](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pLzE4N2IyZTFlZjdhNGIxZjA2MmRlNGJhZDVhZDU5MTNhMi5qcGc%3D.jpg?w=700&webp=1)
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')
手动读写数据(按要求):资源有限的时候,如30w多条的数据,吃内存
![数据获取和处理 数据获取和处理](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pLzE4N2IyZTFlZjdhNGIxZjA2MmRlNGJhZDVhZDU5MTNhMS5qcGc%3D.jpg?w=700&webp=1)
![数据获取和处理 数据获取和处理](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pLzE4N2IyZTFlZjdhNGIxZjA2MmRlNGJhZDVhZDU5MTNhMi5qcGc%3D.jpg?w=700&webp=1)
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))}
JSON格式的数据
![数据获取和处理 数据获取和处理](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pLzE4N2IyZTFlZjdhNGIxZjA2MmRlNGJhZDVhZDU5MTNhMS5qcGc%3D.jpg?w=700&webp=1)
![数据获取和处理 数据获取和处理](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pLzE4N2IyZTFlZjdhNGIxZjA2MmRlNGJhZDVhZDU5MTNhMi5qcGc%3D.jpg?w=700&webp=1)
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)
xml和HTML
html:beautifulSoup获取要找的元素
xml:lxml解析
二进制格式
不方便人看,但是性能更好,方便存储
![数据获取和处理 数据获取和处理](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pLzE4N2IyZTFlZjdhNGIxZjA2MmRlNGJhZDVhZDU5MTNhMS5qcGc%3D.jpg?w=700&webp=1)
![数据获取和处理 数据获取和处理](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pLzE4N2IyZTFlZjdhNGIxZjA2MmRlNGJhZDVhZDU5MTNhMi5qcGc%3D.jpg?w=700&webp=1)
import pandas as pd frame=pd.read_csv('xx.csv') frame.to_pickle('frame_pickle') #以二进制写进去
2 数据库相关操作
2.1sqlite数据库:import sqlite3
2.2 mysql:import MySQLdb 一定要commit才可以执行
2.3 memcache
2.4 mongodb
3 爬虫
库Requests
![数据获取和处理 数据获取和处理](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pLzE4N2IyZTFlZjdhNGIxZjA2MmRlNGJhZDVhZDU5MTNhMS5qcGc%3D.jpg?w=700&webp=1)
![数据获取和处理 数据获取和处理](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pLzE4N2IyZTFlZjdhNGIxZjA2MmRlNGJhZDVhZDU5MTNhMi5qcGc%3D.jpg?w=700&webp=1)
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())
模拟登陆
![数据获取和处理 数据获取和处理](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pLzE4N2IyZTFlZjdhNGIxZjA2MmRlNGJhZDVhZDU5MTNhMS5qcGc%3D.jpg?w=700&webp=1)
![数据获取和处理 数据获取和处理](https://image.shishitao.com:8440/aHR0cHM6Ly93d3cuaXRkYWFuLmNvbS9pLzE4N2IyZTFlZjdhNGIxZjA2MmRlNGJhZDVhZDU5MTNhMi5qcGc%3D.jpg?w=700&webp=1)
from bs4 import BeautifulSoup import requests s=requests.session() data={'user':'用户名','passdw':'密码'} res=s.post('https://www.douban.com/accounts/login?source=main',data) #然后就可以抓取你要的内容了
案例:链家网抓取
设置请求头部信息,设置为浏览器
抓取列表页信息:time.sleep(1)
用bs4解析页面内容
清洗数据并整理到数据表中
pandas.DataFrame
对数据分隔
合并分裂结果,pd.merge