学习csv

Posted jzxs

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学习csv相关的知识,希望对你有一定的参考价值。

1.csv文件读取,csv文件是常用的数据存储格式之一,我们使用Python模块来处理csv文件,这是一个天气信息表

技术分享图片

import csv
from matplotlib import pyplot as plt

filename = sitka_weather_07-2014.csv
with open(filename) as f:
    #从文件获取数据
    reader = csv.reader(f)
    #获取数据的第一行也就是数据字段
    header_row = next(reader)
    #print(header_row)
    #遍历读取到的第一行数据使用enumerate函数来获取每个元素的索引和值
    # for index ,column_header in enumerate(header_row):
    #     print(index,column_header)
    
    highs=[]
    #从文件获取到最高气温
    for row in reader:
        highs.append(int(row[1]))
    print(highs)
    fig = plt.figure(dpi=128, figsize=(10, 6))
    plt.plot(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)


    title = "Daily high and low temperatures CA"
    plt.title(title, fontsize=20)
    plt.xlabel(‘‘, fontsize=16)
    fig.autofmt_xdate()
    plt.ylabel("Temperature (F)", fontsize=16)
    plt.tick_params(axis=both, which=major, labelsize=16)

    plt.show()

技术分享图片

除了这样显示,我们还可以读取时间数据显示在x轴上,添加datetime模块

from datetime import datetime

读取时间数据

filename = sitka_weather_07-2014.csv
with open(filename) as f:
    #从文件获取数据
    reader = csv.reader(f)
    #获取数据的第一行也就是数据字段
    header_row = next(reader)
    #print(header_row)
    #遍历读取到的第一行数据使用enumerate函数来获取每个元素的索引和值
    # for index ,column_header in enumerate(header_row):
    #     print(index,column_header)
    
    highs,dates=[],[]
    #从文件获取到最高气温
    for row in reader:
        #从文件获取日期
        current_date=datetime.strptime(row[0],"%Y-%m-%d")
        dates.append(current_date)
        highs.append(int(row[1]))
    print(highs,dates)
    fig = plt.figure(dpi=128, figsize=(5, 4))
    #添加日期
    plt.plot(dates,highs, c=red, alpha=0.5)

技术分享图片

图中是一个月的天气温度情况

当然还可以读取整年的天气情况,只要有足够的数据

2.绘制一个数据系列,对比全年每个月的最高气温和最低气温

import csv
from datetime import datetime

from matplotlib import pyplot as plt

filename = death_valley_2014.csv
with open(filename) as f:
    reader = csv.reader(f)
    header_row = next(reader)

    dates, highs, lows = [], [], []
    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:
            dates.append(current_date)
            highs.append(high)
            lows.append(low)

#绘制图表.
fig = plt.figure(dpi=128, figsize=(10, 9))
plt.plot(dates, highs, c=red, alpha=0.5)
plt.plot(dates, lows, c=blue, alpha=0.5)
#facecolor指定了填充区域的颜色
plt.fill_between(dates, highs, lows, facecolor=blue, alpha=0.1)


title = "Daily high and low temperatures  CA"
plt.title(title, fontsize=10)
plt.xlabel(‘‘, fontsize=6)
fig.autofmt_xdate()
plt.ylabel("Temperature (F)", fontsize=6)
plt.tick_params(axis=both, which=major, labelsize=6)

plt.show()

技术分享图片

 

以上是关于学习csv的主要内容,如果未能解决你的问题,请参考以下文章

nzSQLException 读取超时错误

IOS开发-OC学习-常用功能代码片段整理

java SpringRetry学习的代码片段

python 机器学习有用的代码片段

Golanggin csv 生成及下载

Golanggin csv 生成及下载