开发者学堂课程【Python 数据分析库 Pandas 快速入门:csv 文件的读取与存储】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/607/detail/8856
csv 文件的读取与存储
内容介绍
一、学习目标
二、CSV
一、学习目标
1.目标
了解 Pandas 的几种文件读取存储操作
应用 CSV 方式和 HDF 方式实现文件的读取和存储。
2.应用
实现股票数据的读取存储
数据大部分存在于文件当中,所以 pandas 会支持复杂的 IO 操作,pandas 的 API 支持众多的文件格式,如 CSV、SQL、XLS、JSON、HDF5。
最常用的 HDF5 和 CSV 文件
二、CSV
1.读取 csv 文件-read_csv()
pandas.read_csv(filepath_or_buffer, sep =',', delimiter = None)
filepath_or_buffer:文件路径
usecols:指定读取的列名,列表形式
读取之前的股票的数据
#读取文件并且指定只获取'open',‘high‘,’close‘指标
data pd.read_csv("./stock day/stock_day.csv", usecols=['open',‘high', 'close‘]
open high close
2018-02-27 20.53 25.88 24.16
2018-02-26 22.00 23.78 23.53
2018-02-23 22.88 23.37 22.82
2018-02-22 22.25 22,76 22.28
2018-02-14 21.49 21.99 21.92
字段:
["open", "high", "close", "low", "volume", "price_change", "p_change", "ma5", “ma10”, “ma20”, “v_ma5”,”v_ma10”, “v_ma20”, “turnover”]
2.写入 csv 文件-to_csv()
1)DataFrame.to_csv (path_or_buf=None, sep=', ', columns=None, header=True, index=True, index_Jabel=None, mode='w', encoding=None)
path_or_buf :string or file handle, default None
sep :character, default .
columns :sequence, optional
mode:'w':重写,'a'追加
index:是否写进行索引
header :boolean or list of string, default True,是否写进列索引值
2)Series.to_csv (path=None, index=True, sep=',', na_rep=", float_format=None,header=False,index_Jabel=None, mode='w',encoding=None,compression=None, date_format=None, decima/='.)
Write Series to a comma-separated values (csv) file
3)案例
保存‘open'列的数据
#选取10行数据保存,便于观察数据
data[1:10].to_csv("./test.csv", columns=['open’])
读取、查看结果
pd.read_csv("./test.csv")
Unnamed:0 open
2018-02-27 23.53
2018-02-26 22.80
2018-02-23 22.88
2018-02-22 22.25
2018-02-14 21.49
2018-02-13 21.40
2018-02-12 20.70
2018-02-09 21.20
2018-02-08 21.79
2018-02-07 22.69
会发现将索引存入到文件当中,变成单独的一列数据。如果需要删除,可以指定 index 参数,删除原来的文件,重新保存一次。
# index:存储不会讲索引值变成一列数据
stock day[:10].to_csv("./test.csy", columns=['open'], index=False)
指定追加方式
stock_day[:10].to_csv("./test.csv", columns=['open'1, index=False, mode='a’)
open
0 23.53
…
9 22.69
10 open
11 23.53
…
20 22.69
又存进了一个列名,所以当以追加方式添加数据的时候,一定要去掉列名columns,指定 header=False
stock_day[:10].to_csv("./test.csv", columns=['open'], index=False, mode='a')
open
0 23.53
…
7 21.20
8 21.79
9 22.69
10 23.53
11 22.80
12 22.88
13 22.25
…
19 22.69