之前我們用習(xí)慣了Python2.7,但畢竟Python3才是未來的大趨勢(shì)板甘,許多庫也開始升級(jí)兼容新版本的Python熄赡,因此我們需要與時(shí)俱進(jìn)一下,了解一些新的特性和語法兼贸。
讀取數(shù)據(jù)
requests 是一個(gè)很方便讀取數(shù)據(jù)的API段直,該庫被稱為誰都看得懂的API。使用方法非常簡(jiǎn)單寝受,首先導(dǎo)入進(jìn)python。
import requests #注意要加上s
#requests.get(r'網(wǎng)址') 可以將該網(wǎng)址的內(nèi)容導(dǎo)入進(jìn)來
content = requests.get(r'https://baijiahao.baidu.com/s?id=1619614559149684896&wfr=spider&for=pc')
content.text
輸出結(jié)果就是一堆網(wǎng)頁的內(nèi)容
'<!Doctype html>\n<html xmlns="http://www.w3.org/1999/xhtml"><head><meta charset="utf-8"/><meta name="referrer" content="always"><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"><meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"><link rel="shortcut icon" type="image/x-icon"><link rel="apple-touch-icon-precomposed" ><title>慢慢挑罕偎,新能源汽車產(chǎn)業(yè)鏈中的投資機(jī)會(huì)</title>……
忽略報(bào)錯(cuò)和兼容提示
這個(gè)超簡(jiǎn)單很澄,只需加上一句import warnings; warnings.simplefilter('ignore')
即可。
讀取和儲(chǔ)存數(shù)據(jù)
#先設(shè)定一下儲(chǔ)存文件的路徑
import numpy as np
import pandas as pd
import requests
import os
path = r'c:\python'
content = requests.get(r'https://baijiahao.baidu.com/s?id=1619614559149684896&wfr=spider&for=pc')
with open(path+'webpage.data', 'w') as webarticle: #在路徑下寫入一個(gè)webpage.data文件颜及,簡(jiǎn)稱為webarticle
webarticle.write(content.text) #在webarticle中寫入content.text的內(nèi)容
os.chdir(path) #表示轉(zhuǎn)到path目錄下
df = pd.read_csv(path+‘webpage.data’) #讀取剛剛創(chuàng)建并寫入內(nèi)容的文件
df
df.ix的替代用法
在python3中甩苛,df.ix被取消了,因?yàn)樵谛袠?biāo)簽和具體行的識(shí)別上容易混淆∏握荆現(xiàn)在一律用兩個(gè)操作讯蒲,一個(gè)是iloc,一個(gè)是loc肄扎。
df.iloc[:3,:2] 表示選取前三行和前兩列
df.loc[:3,‘A’] 表示選取前四行和第A列墨林,因?yàn)槭菢?biāo)簽赁酝,所以選取了0旭等、1酌呆、2、3行
如果想要實(shí)現(xiàn)混搭的指定搔耕,則可以這樣寫:
df.iloc[[0, 2], df.columns.get_indexer(['A', 'B'])] # 選取第1行和第三行的A隙袁、B兩列
df.loc[df.index[:3],[x for x in df.columns if 'boy' in x]] #選取前3行且列名包含boy的列
刺猬偷腥
2019年1月11日