CSV檔案格式

2022-09-23 00:13:08 字數 4256 閱讀 1530

import

csvfilename='

sitka_weather_07-2014.csv

'with open(filename) as f:

reader=csv.reader(f)

header_row=next(reader)

for index,column_header in

enumerate(header_row):

print(index,column_header)

from matplotlib import

pyplot as plt

import

csvfilename='

sitka_weather_07-2014.csv

'with open(filename) as f:

reader=csv.reader(f)

header_row=next(reader)

highs=

for row in

reader:

plt.figure(dpi=128,figsize=(10,6))

plt.plot(highs,c='

red'

) plt.title(

"daily high temperatures, july 2014

",fontsize=24)

plt.xlabel(

'',fontsize=16)

plt.ylabel(

"temperature (f)

",fontsize=16)

plt.tick_params(axis='

both

',which='

major

',labelsize=16)

plt.show()

我們先試著輸出第二行:

['2014-7-1', '64', '56', '50', '53', '51', '48', '96', '83', '58', '30.19', '30.00', '29.79', '10', '10', '10', '7', '4', '', '0.00', '7', '', '337']
需要將字串'2014-7-1'轉換為一個表示相應日期的物件,可使用模組datetime中的方法strptime()

from matplotlib import

pyplot as plt

from datetime import

datetime

import

csvfilename='

sitka_weather_07-2014.csv

'with open(filename) as f:

reader=csv.reader(f)

header_row=next(reader)

dates,highs=,

for row in

reader:

current_date=datetime.strptime(row[0],"

%y-%m-%d")

fig=plt.figure(dpi=128,figsize=(10,6))

plt.plot(dates,highs,c='

red'

)plt.title(

"daily high temperature, july 2014

", fontsize=24)

plt.xlabel(

"",fontsize=16)

plt.ylabel(

"temperature (f)

",fontsize=16)

fig.autofmt_xdate()

plt.tick_params(axis='

both

',which='

major

',labelsize=16)

plt.show()

這其中我們呼叫了fig.autofmt_xdate()來繪製斜的日期標籤,以免它們彼此重疊。

首先再新增一個資料系列-最低氣溫,使用方法fill_between(),它接受一個x值系列和兩個y值系列,並填充兩個y值系列之間的空間(引數alpha指定顏色的透明度):

from matplotlib import

pyplot as plt

from datetime import

datetime

import

csvfilename='

sitka_weather_2014.csv

'with open(filename) as f:

reader=csv.reader(f)

header_row=next(reader)

dates,highs,lows=,,

for row in

reader:

current_date=datetime.strptime(row[0],"

%y-%m-%d")

fig=plt.figure(dpi=128,figsize=(10,6))

plt.plot(dates,highs,c='

red',alpha=0.5)

plt.plot(dates,lows,c='

blue

',alpha=0.5)

plt.fill_between(dates,highs,lows,facecolor='

blue

',alpha=0.1)

plt.title(

"daily high and low temperatures - 2014

", fontsize=24)

plt.xlabel(

"",fontsize=16)

plt.ylabel(

"temperature (f)

",fontsize=16)

fig.autofmt_xdate()

plt.tick_params(axis='

both

',which='

major

',labelsize=16)

plt.show()

有些氣象站會偶爾出現故障,未能收集部分或全部其應該收集的資料。缺失資料可能會引發異常,如果不妥善地處理,還可能導致程式崩潰。

我們換用加利福尼亞死亡谷的氣溫圖,執行程式時報錯:

該traceback指出,python無法處理其中一天的最高氣溫,因為它無法將空字串(' ')轉化為整數。

檢視 death_valley_2014.csv,就能發現其中的問題:

其中沒有2014年2月16日的資料,為解決這種問題,我們在讀取csv資料時執行錯誤檢查**,對可能出現的異常進行處理:

for row in

reader:

try:

current_date=datetime.strptime(row[0],"

%y-%m-%d")

high=int(row[1])

low=int(row[3])

except

valueerror:

print(current_date,'

missing data')

else

:

只要缺失其中一項資料,就會引發valueerror異常,而我們可這樣處理:列印一條錯誤訊息,並指出缺失資料的日期。

執行程式,將發生缺失資料的日期只有一個:

windwos文件格式轉換成unix格式

在工作學習中我們避免不了需要將一些指令碼和命令記錄在筆記裡面,我使用的是有道雲筆記,每當我將上次記錄在有道雲的指令碼複製出來進行使用的時候,...

CSV轉成Excel格式

需求說明 假如有一個csv檔案,開啟之後不是想要的編碼格式,或者一些數字全都是科學計數法計數。 下面你按照下面文件一步一步操作就可以將csv格式轉化成excel格式。 1 新建一個excel空文件,如下所示 2 開啟這個新建的空文件,找到 資料 一欄,然後點選 自文字 。 3 接下來就會彈出一個文字...

CSV (逗號分隔值檔案格式)

逗號分隔值 comma separated values,csv,有時也稱為字元分隔值,因為分隔字元也可以不是逗號 ,其檔案以純文字形式儲存...