python加载数据集,python保存变量到文件

  python加载数据集,python保存变量到文件

  日常工作中有很多类型的文件,使用它们从文件中提取数据用于图形的方法也有很多。本文将使用Python从文件中加载数据,有兴趣的可以看看。

  前几篇是手工输入的数据,或者是随机函数生成的数据。实际上,文件的类型有很多种,使用它们从文件中提取数据用于图形的方法也有很多种。

  比如python Foundation (12)之前介绍了打开文件的方式,可以直接读取文件中的数据,扩大了我们的数据源。下面将展示几种方法。

  我们将使用内置的 csv 模块加载CSV文件

  CSV文件是一种特殊的文本文件,文件中的数据用逗号分隔,非常适合数据分析。首先用excle创建以下表格和数据,保存为csv格式文件,放在code目录下。

  CSV模块包含在Python标准库中,我们只有通过导入才能使用。比如我们需要打印出上面所有的CSV文件,代码如下:

  导入csv #import csv用于导入csv模块。

  filename= e : \ workspace \ python \ coding \ score . CSV #文件保存的绝对路径

  用(filename)作为file _ csv: #你忘记如何打开文件了吗?打开文件并将结果文件对象存储在file_csv中。

  Reader=csv.reader(file_csv) #用csv.read()读取文件内容

  对于reader: #中的行,使用For循环打印每行

  打印(行)

  运行结果如下:

  [姓名,年级,班级,年龄,数学分数,英语分数]

  [露西, 7 , 2 , 14 , 95 , 86]

  [布什, 8 , 1 , 15 , 80 , 75]

  [莉莉, 7 , 3 , 14 , 93 , 95]

  [杰克, 8 , 2 , 14 , 87 , 84]

  [玛丽, 9 , 1 , 15 , 85 , 86]

  [菲利普, 7 , 3 , 14 , 90 , 92]

  [黎明, 9 , 2 , 16 , 99 , 87]

  打印文件头及其位置

  读入文件是为了获取其中的数据。有必要将相关信息分开。首先看如何读头,也就是文件的第一行。next()返回文件中的下一行。

  导入csv #import csv用于导入csv模块。

  filename= e : \ workspace \ python \ coding \ score . CSV #文件保存的绝对路径

  用(filename)作为file _ csv: #你忘记如何打开文件了吗?打开文件并将结果文件对象存储在file_csv中。

  Reader=csv.reader(file_csv) #用csv.read()读取文件内容

  header _ row=next(reader)# Module CSV包含函数next()。当调用它并将reader对象传递给它时,它将返回文件中的下一行。

  # next()被调用一次,所以你得到的是文件的第一行,它包含文件头。

  #for row in reader: #用for循环# print(row)打印每一行

  对于索引,枚举中的column_header(

  header_row): #对列表调用了enumerate()来获取每个元素的索引及其值

   print(index, column_header)

  运行后的结果如下所示:

  

0 Name
1 Grade
2 Class
3 Age
4 mathscore
5 Englishscore

  

  提取其中索引,即name的索引为0,Grade的索引为1,知道了索引便可以读取其中的任何数据,比如我们要打印出mathscore,索引为4,于是代码如下:

  

scores =[] 定义一个空的list

   for row in reader:

   scores.append(int(row[4])) #读取的文件,默认为字符串,用int()转换为数字。

   print(scores)

  运行结果:

  

[95, 80, 93, 87, 85, 90, 99]

  

  接下来,制作图表展示一下,先把mathscore和englishscore分数做个柱状对比。代码如下:

  

import matplotlib.pyplot as plt

  import csv #import csv 用来导入csv模块

  filename = E:\WorkSpace\python\coding\score.csv #文件保存的绝对路径

  with open(filename) as file_csv: #是不是忘记了如何打开文件?打开文件,并将结果文件对象存储在file_csv中

   reader = csv.reader(file_csv) #直接调读取 用csv.read()读取文件内容

   header_row = next(reader) #模块csv包含函数 next() ,调用它并将阅读器对象传递给它时,它将返回文件中的下一行。

   #调用了 next() 一次,因此得到的是文件的第一行,其中包含文件头

   mathscores =[] #定义两个列表

   englishscores=[]

   for row in reader:

   mathscores.append(int(row[4])) #读取索引为4的数据,默认为字符串,用int()转换为数字。

   englishscores.append(int(row[5])) #读取索引为5的数据,用int()转换为数字。

  plt.bar([1,3,5,7,9,11,13],mathscores,label=math,color=#FF2204)

  plt.bar([2,4,6,8,10,12,14],englishscores, label=englis, color=g)

  plt.legend()

  plt.title(scores)

  plt.show()

  已将那些打印相关代码删除。看运行结果:

  

  接下来,我们读取文件 ,并根据文件中的时间来绘制图表

  新建一个年份的数据(真的是胡编乱造的数据),第一列是年份,第二列每年毕业的人数,第三列是每年申请人数,如图所示:

  

  要求:

  1,按年份分别显示出每年两者的人数,并用不同的颜色表示;

  2、两者间也用其他颜色进行填充。

  完成代码如下:

  

import matplotlib.pyplot as plt

  import csv #import csv 用来导入csv模块

  from datetime import datetime #引入时间相关模块

  filename = E:\WorkSpace\python\coding\graduatesNumbers.csv #文件保存的绝对路径

  with open(filename) as file_csv: #是不是忘记了如何打开文件?打开文件,并将结果文件对象存储在file_csv中

   reader = csv.reader(file_csv) #直接调读取 用csv.read()读取文件内容

   header_row = next(reader)

   dates=[]

   numbers=[]

   application_numbers=[]

   for row in reader:

   current_date = datetime.strptime(row[0], "%Y/%m/%d") #年份,strptime()日期格式转化为字符串格式的函数

   dates.append(current_date)

   numbers.append(int(row[1])) #读取索引为1的数据,默认为字符串,用int()转换为数字,即Numbers of graduates 。

   application_numbers.append(int(row[2])) #读取索引为2的数据,即Number of applicants

  plt.plot(dates,numbers,label=Numbers of graduate, c=red) #显示第一条线

  plt.plot(dates,application_numbers,label=Number of applicant, c=green) #显示第二条线application_numbers折线

  plt.fill_between(dates,numbers, application_numbers, facecolor=blue, alpha=0.5) #在两线之间填充颜色 alpha透明度

  plt.title("The numbers of graduate",fontsize=24)

  plt.xlabel(Years, fontsize=16)

  plt.ylabel("The numbers", fontsize=16)

  plt.legend()

  plt.show()

  实际运行结果如下:

  

  以上就是Python实现从文件中加载数据的方法详解的详细内容,更多关于Python 加载数据的资料请关注盛行IT软件开发工作室其它相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: