利用Python读取CSV文件并计算某一列的均值和方差

近日朋友需要帮忙对excel的csv文件进行处理,求取某银行历年股价的均值方差等一系列数据

文件的构成很简单,部分如下所示

总共有接近七千行数据,主要的工作就是将其中的股价数据提取出来,放入一个数组之中,然后利用numpy模块即可求出需要的数据。

这里利用了csv模块来对文件进行处理,最终实现的代码如下:

import csv
import numpy as np

with open(‘pingan_stock.csv‘) as csv_file:
    row = csv.reader(csv_file, delimiter=‘,‘)

    next(row)  # 读取首行
    price = []  # 建立一个数组来存储股价数据

    # 读取除首行之后每一行的第二列数据,并将其加入到数组price之中
    for r in row:
        price.append(float(r[1]))  # 将字符串数据转化为浮点型加入到数组之中

print(np.var(price))  # 输出均值
print(np.mean(price))  # 输出方差

首先利用csv的reader方法,其中delimiter可有可无,它是一个分隔符,原本的值就是逗号,所以加不加无所谓

reader返回的是一个可以迭代的对象,需要使用for循环遍历,row的部分输出值如下:

next(row)的作用是读取第一个列表,也就是[‘year‘,‘price‘],因为后面的代码中要将字符型的数据转化为浮点型,便于最后的计算,所以这句代码必须加上,否则在转换时就会报错,在对row进行遍历时,r[1]表示每一行的第二个数据,利用append将每一行的第二列数据存入数组之中,当遍历完成时,第二列的所有数据就成功存入了price数组中,并且都是浮点型的数据,得到了这个数组就算是大功告成了,最后利用numpy模块的mean和var分别计算出均值和方差。

原文地址:https://www.cnblogs.com/ZhangWj-/p/12361504.html

时间: 2024-08-11 06:45:41

利用Python读取CSV文件并计算某一列的均值和方差的相关文章

Python读取CSV文件,报错:UnicodeDecodeError: 'gbk' codec can't decode byte 0xa7 in position 727: illegal multibyte sequence

Python读取CSV文件,报错:UnicodeDecodeError: 'gbk' codec can't decode byte 0xa7 in position 727: illegal multibyte sequence 解决办法: 在语句open(sFileName,newline='')中,增加encoding='UTF-8',如下: open(sFileName,newline='',encoding='UTF-8') Python读取CSV文件,报错:UnicodeDecode

python读取csv文件并添加索引

对于csv文件进行处理一个重要的步骤是为数据添加索引,方便后续的数据操作,这里我们使用pandas库中的read_csv()函数,在读取csv数据的同时可以对其添加行索引和列索引. import pandas as pd obj=pd.read_csv('testdata.csv') print(obj) read_csv()不对属性进行设置的缺省状态下,对于csv文件进行读取操作后,即使原来的数据存在索引,也会自动添加数字的行索引和列索引. obj=pd.read_csv('testdata.

python读取csv文件

# coding: utf-8 import csv csvfile = open('test.csv', 'rb') reader = csv.reader(csvfile) for line in reader: print line csvfile.close()

python 读取excel文件

1.用python读取csv文件: csv是逗号分隔符格式 一般我们用的execl生成的格式是xls和xlsx  直接重命名为csv的话会报错: Error: line contains NULL byte insun解决方案:出错原因是直接是把后缀为xls的execl文件重命名为csv的 正常的要是另存为csv文件 就不会报错了 譬如我们有这么个csv文件: #!/usr/bin/env python # -*- coding:utf-8 -*-   import csv with open(

Python操作csv文件

一.Python读取csv文件 1 说明:以Python3.x为例 2 #读取csv文件方法1 3 import csv 4 csvfile = open('csvWrite.csv',newline='')#打开一个文件 5 csvReader = csv.reader(csvfile)#返回的可迭代类型 6 print(type(csvReader)) 7 for content in csvReader: 8 print(content) 9 csvfile.close()#关闭文件运行结

python读取csv转换为dataframe

前言: 由于在处理结构性数据的时候经常会读取本地形如:.xls.xlsx.csv等的数据.所以今天就花了点时间来总结一下利用python读取csv数据并且转换为dataframe的数据框架.话不多说,直接附代码: import csv from pandas.core.frame import DataFrame import pandas as pd tmp_lst = [] with open('filename_path.csv', 'r') as f: reader = csv.read

Python 中读取csv文件中有中文的情况

Python 中读取csv文件中有中文的情况,提示编码问题: 读取的时候: import sys reload(sys) #中文错误 sys.setdefaultencoding( "utf-8" ) save 存储的时候: dataframe可以使用to_csv方法方便地导出到csv文件中,如果数据中含有中文,一般encoding指定为"utf-8″,否则导出时程序会因为不能识别相应的字符串而抛出异常,index指定为False表示不用导出dataframe的index数据

python之小应用:读取csv文件并处理01数据串

目的:读取csv文件内容,把0和1的数据串取出来,统计出现1的连续次数和各次数出现的频率次数 先读取csv文件内容: import csv def csv_read(file): list = [] csv_reader = csv.reader(file) for id, data, *args in csv_reader: #跳过表头 if id == " ": continue #print(id, data) list.append(data) return list 再写处理

Python 读取csv的某行

站长用Python写了一个可以提取csv任一列的代码,欢迎使用.Github链接 csv是Comma-Separated Values的缩写,是用文本文件形式储存的表格数据,比如如下的表格: 就可以存储为csv文件,文件内容是:No.,Name,Age,Score1,Apple,12,982,Ben,13,973,Celia,14,964,Dave,15,95假设上述csv文件保存为"A.csv",如何用Python像操作Excel一样提取其中的一行,也就是一条记录,利用Python自