读取特定行特定列的csv并作图

也是参考各位CSDN大佬的代码,融合在一起,侵shan.

用的是最复杂的办法,先把符合条件的三列数据提取出来,输出一个新的csv然后进行画图。

import csv
import matplotlib.pyplot as plt

import pandas as pd
from datetime import datetime
file_name = 'E:\data\\0721-0727.csv'

with open(file_name, 'r', encoding='utf-8') as f:
    reader = csv.reader(f)

    for i in range(6):
        header_row = next(reader)

    dates, blocks, ltes = [], [], []
    for row in reader:
        try:
            current_date = datetime.strptime(row[1][0:row[1].rfind('-')], '%Y.%m.%d %H:%M')
#源数据日期格式为2020.08.02 00:00-2020.08.02 01:00,需要筛选出2020.08.02 00:00所以截取一下字段
            block=str(row[0])
            lte=str(row[29])

            if block=='###':
                print(current_date)
                print(block)
                print(lte)
            else:
                break #筛选出特定条件为###的整行数据

        except ValueError:
            print(current_date, 'missing date')

        else:
            dates.append(current_date)
            blocks.append(block)
            ltes.append(lte)


    test=pd.DataFrame({'BLOCK':blocks,'DATAS':dates,'LTES':ltes})
    test.to_csv('test.csv',index = None,encoding='utf8')

    plt.rcParams['font.sans-serif'] = ['SimHei']
    plt.rcParams['font.family'] = 'sans-serif'
    plt.rcParams['axes.unicode_minus'] = False

    data1 = pd.read_csv('test.csv')

    fig = plt.figure(figsize=(36, 24))
    xdata = []
    ydata = []

    xdata = data1.loc[:, 'DATAS']
    ydata = data1.loc[:, 'LTES']

    plt.plot(xdata, ydata, color='r', marker='o', mec='r', mfc='w', label=u'label1')
    plt.xticks(rotation=45)

    plt.title(u"title", size=40)
    plt.legend()
    plt.xlabel(u'时间', size=40)
    plt.ylabel(u'流量', size=40)

    plt.show()

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值