《Python編程從入門到實踐》(第16章.下載數據)

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是一個存儲了星期幾的列表

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章