【python数据分析】CSV文件数据读写

来源:互联网 发布:vs怎么编译c语言 编辑:程序博客网 时间:2024/05/16 09:59

关于CSV文件

CSV(Comma-Separated Value,逗号分隔值)格式是一种常见的文件格式。通常,数据库的转存文件就是CSV格式的,文件中的各个字段对应于数据库表中的列。可以用txt或者excel打开;

文件打开后大致为以下样式:

使用numpy读取CSV文件数据

在NumPy中,使用loadtxt函数可以方便地读取CSV文件,自动切分字段,并将数据载入NumPy数组。

loadtxt的功能是读入数据文件,这里的数据文件要求每一行数据的格式相同。这个函数有几个常用的参数,这里给出了参数的意义。

  • fname:读取文件的文件名。例如C:/Dataset/iris.txt。

  • delimiter:数据之间的分隔符。如使用逗号”,”。

  • dtype:数据类型。如float,str等。

  • usecols:选取数据的列。

  • 这里主要说一下usecols的用法。如果iris.txt中的前4列,则usecols=(0,1,2,3)。如果取第5列这一列,则usecols=(4,)

下面,我们以载入苹果公司的历史股价数据为例展开叙述。股价数据存储在CSV文件中,第一列为股票代码以标识股票(苹果公司股票代码为AAPL),第二列为dd-mm-yyyy格式的日期,第三列为空,随后各列依次是开盘价、最高价、最低价和收盘价,最后一列为当日的成交量。如上图,下面为一组数据:
AAPL,28-01-2011, ,344.17,344.4,333.53,336.1,21144800

假如我们想获取收盘价和成交量,我们可以将收盘价和成交量分别载入两个数组,代码如下:

c,v = np.loadtxt('data,csv',delimiter=',',usecols=(6,7),unpack=True)

注:这里’data.csv’是保存数据的位置;delimiter=’,’表示用逗号做分隔符;usecols=(6,7)表示usecols的参数是一个元组,以获取第7字段和第8字段的数据;unpack参数设置为True,意思是分拆存储不同列的数据;

假如说csv文件的第一行是表头(文字),那么使用以上语句读取会报错。

ValueError: could not convert string to float: 收盘价

这时我们一般在loadtxt函数中加入skiprows=1跳过第一行就好了;

numpy以CSV保存数据

np.savetxt('np.csv',a,fmt='%.2f',delimiter=',',header="#1,#2,#3,#4") 

numpy的savetxt()函数是与loadtxt()函数相对应的函数,上面的函数调用中,我们规定了用以保存数组的文件的名称、数组、可选格式、间隔符和一个可选的标题;

使用pandas读入CSV文件数据

pandas为读取CSV文件提供了read_scv()函数。详细见https://zhuanlan.zhihu.com/p/26618330

import pandas as pdimport ospath = os.getcwd()+'\\局座哭了.csv'f = open(path, encoding='utf-8')data = pd.read_csv(f)print(data)

数据统计

print(data.describe())

读取CSV前几行

#读取文件前5行headdata = data.head(5)print(headdata)

某行-所有列

#第一行所有数据print(data.ix[0, :])

某几行-所有列

#获取第2/4/6行的数据print(data.ix[[1,3,5],:])

所有行-所有列

print(data.ix[:, :])

某列-所有行

#读取username列所有的数据print(data.ix[:, 'username'])

某几列-某几行

#读取第1、3、5行,列名为username、verified_type、comment的数据print(data.ix[[1,3,5], ['username','verified_type','comment']])
原创粉丝点击