python学习笔记之导入数据

概述

把文件导入到python的方法有很多种

  • 假设我们知道文件的地址(本地路径或者url),如果是flat/non-flat file
    • 先将文件存到本地,然后用pd读取
    • pd.read_csv()可以直接读url
  • 通过HTTP请求
    • urllib.request包
    • requests包
    • 用bs4包的BeautifulSoup来parse html

先将文件存到本地,然后用pd读取

urllib.request包中有一个方法 urlretrieve(),可以把一个文件通过url存到本地
实例:

url = 'https://s3.amazonaws.com/assets.datacamp.com/production/course_1606/datasets/winequality-red.csv'
# 存到本地,文件名为'winequality-red.csv'
urlretrieve(url, 'winequality-red.csv')

pd.read_csv()可以直接读url

url = 'https://s3.amazonaws.com/assets.datacamp.com/production/course_1606/datasets/winequality-red.csv'

df = pd.read_csv(url,sep=';')

# 画个图
pd.DataFrame.hist(df.ix[:, 0:1])
plt.xlabel('fixed acidity (g(tartaric acid)/dm$^3$)')
plt.ylabel('count')
plt.show()

1.2.PNG

通过url导入excel文件

#把excel存成一个dictionary
xls = pd.read_excel(url, sheet_name = None)
# 得到每个标签页的名字
print(xls.keys())
# 通过标签页的名字来access数据
print(xls['1700'].head())

通过HTTP请求来读取文件

urllib.request

urllib的子包request中有urlopen, Request方法,来建立http请求
实例:

from urllib.request import urlopen, Request

request = Request(url)
# 发送请求并储存结果
response = urlopen(request)
# 得到该url的html文件
html = response.read()

print(type(response))
# 关闭请求
response.close()

response的type是<class ‘http.client.HTTPResponse’>

requests包

requests包把发送请求接收回应合并成一个方程get()
response中text属性把html变成一个string

import requests
#send requestion and get response
r = requests.get(url)

# Extract the response: text
html = r.text

#处理json文件
json_data = r.json()

用bs4包的BeautifulSoup来parse html

显然成为一个单纯的string的html,既难以阅读,也难以分析,幸好有包 ><

from bs4 import BeautifulSoup
r = requests.get(url)
#得到html
html_doc = r.text
#建立一个BeautifulSoup对象
soup = BeautifulSoup(html_doc)

#得到title和text
title = soup.title
text = soup.get_text()
#找html中的超链接 (<a>中的内容)
a_tags = soup.find_all('a')

# 打印该html中所有超链接
for link in a_tags:
    print(link.get('href')) 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值