Pandas-03-文件读取与存储
1. CSV
1.1. read_csv
-
pandas.read_csv(filepath_or_buffer, sep=',')
- filepath_or_buffer:文件路径
- usecols:列表,指定读取的列名
# 读取文件,并指定只获取open和close这两列 data = pd.read_csv("./data/stock_day.csv", usecols=['open', 'close'])
1.2. to_csv
-
DataFrame.to_csv(path_or_buf=None, sep=',', columns=None, header=True, index=True, mode='w', encoding=None)
- path_or_buf:文件路径
- sep:分隔符,默认用','分开
- columns:选择需要的列索引
- header:bool或字符串列表,是否保存列名,默认为 True ,保存
- index:是否保存索引,默认为 True ,保存
- mode:'w' 重写,'a' 追加
-
举例:保存读取出来的股票数据
- 保存'open'列的数据,然后读取查看结果
data[:10].to_csv("./data/test.csv", columns=["open"], index="date")date open 0 2015-03-02 12.25 1 2015-03-03 12.52 2 2015-03-04 12.80 3 2015-03-05 12.88 4 2015-03-06 13.17 ...可以发现index单独成为了一列数据。如果需要删除,可以指定index参数为False
data[:10].to_csv("./data/test2.csv", columns=["open"], index=False) open 0 12.25 1 12.52 2 12.80 3 12.88 ...
2. HDF5
2.1. read_hdf()与to_hdf()
HDF5文件的读取和存储需要指定一个键,值为要存储的DataFrame。
-
pandas.read_hdf(path_or_buf, key=None, **kwargs)
从h5文件中读取数据
- path_or_buf:文件路径
- key:读取的键
-
DataFrame.to_hdf(path_or_buf, key, **kwargs)
2.2. 案例
-
读取文件
pd.read_hdf("./data/day_close.h5") -
存储文件
day_close.to_hdf("./data/day_close.h5", key="day_close")再次读取的时候需要指定键的名字
pd.read_hdf("./data/day_close.h5", key="day_close")注意:优先选择使用HDF5文件存储
- HDF5在存储时支持压缩,使用的方式是blosc,这个是速度最快也是pandas默认支持的
- 使用压缩可以提高磁盘利用率,节省空间
- HDF5还是跨平台的,可以轻松迁移到hadoop上
3. JSON
3.1. read_json()
-
pandas.read_json(path_or_buf=None, orient=None, typ='frame', lines=False)
-
作用:将JSON格式转换成默认的Pandas DataFrame格式
-
orient:string, Indication of expected JSON string format.字符串,表示预期的JSON字符串格式。
-
'split': dict like
split将索引总结到索引,列名到列名,数据到数据。
-
'records': list like [{column -> value}, ..., {column -> value}]
records以
columns:values的形式输出 -
'index': dict like {column -> {index -> value}}, 默认输出该格式
index以
column:{index:value}的形式输出 -
'values': just the values array
values直接输出值
-
-
lines: boolean, default False
按照每行读取json对象
-
typ: default 'frame',指定转换成的对象类型series或者dataframe
-
-
读取
read = pd.read_json("./data/Sarcasm_Headlines_Dataset.json", orient="records", lines=True)
3.2. to_json()
-
DataFrame.to_json(path_or_buf=None, orient=None, lines=False)
- 将Pandas对象存储为json格式
-
案例
read.to_json("./data/test.json", orient='records')

浙公网安备 33010602011771号