1.分析CSV文件头 P313
import csv
filename = 'death_valley_2014.csv'
with open(filename) as f:
reader = csv.reader(f) #创建一个与文件相关联的阅读器对象,并存储在reader中,只能在with代码块中使用
header_row = next(reader) #返回文件的下一行,这里只调用了一次,所以返回的是文件的第一行
2.模块datetime P316
from datetime import datetime
first_date = datetime.striptime('2014-7-1', '%Y-%m-%d')#将字符创‘2014-7-1’转换成表示相应日期的对象
3.绘制斜的x轴标签 P318
fig.autofmt_xdate()
4.给图标区域着色 P320
使用方法fill_between(),它接受一个x值系列和两个u值系列,并填充两个y值系列之间的空间。
plt.fill_between(dates, highs, lows, facecolor='blue', alpha=0.1)#alpha指定颜色透明度,0表示完全透明,1表示完全不透明。
5.错误检查 P321
如果数据中某个值为空,python无法将空字符串转换为整数显示在图表上。
为此:
try:
current_date = datetime.strptime(row[0], "%Y-%m-%d")
high = int(row[1])
low = int(row[3])
except ValueError: #缺少一项数据时,Python会引发ValueError异常
print(current_date, 'missing data')
else:
dates.append(current_date)
highs.append(high)
lows.append(low)
6.下载数据 P326
json_url = 'https://raw.githubusercontent.com/muxuezi/btc/master/btc_close_2017.json'
# 读取数据
req = requests.get(json_url ) #request通过get()方法想服务器发送请求,返回的结果存储在变量req中
# 将数据写入文件
with open('btc_close_2017_urllib.json', 'w') as f:
f.write(req.text) #先转换成字符再写到文件中/write() argument must be str, not list
file_requests = req.json() #将数据转换成Python 列表
print(file_requests)
7.将两个列表打包成一个元组,返回列表格式 P332
x = [1,2,3]
y = [4,5,6]
>>>c = zip(x,y)
[(1,4),(2,5),(3,6)]
8.按每个元组中第一个元素分组 P332
for x, y in groupby(c, key=lambda _: _[0]): #x返回索引,y返回一个迭代器,包含了所有分组的列表
9.将一周七天的英文单词替换成1-7的整数 P334
idx_week = dates.index('2017-12-11')
wd = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']
weekdays_int = [wd.index(w) + 1 for w in weekdays[1:idx_week]]
weekdays是一个存储了星期几的列表
qq_38122800
发布了20 篇原创文章 · 获赞 0 · 访问量 2049
私信
关注
标签:req,16,Python,编程,datetime,json,reader,date,row