Pandas数据存取
Pandas可以存取多种介质类型数据,例如:内存、文本、CSV、JSON、HTML、Excel、HDF5、SQL等
生成数据
import numpy as np
import pandas as pd
df = pd.DataFrame(np.random.randn(1000, 4), columns = ['A', 'B', 'C', 'D'])
df.head()
A | B | C | D | |
---|---|---|---|---|
0 | -0.132774 | -2.420509 | 0.559352 | -0.561248 |
1 | 1.114528 | 0.253100 | -0.677942 | 0.103792 |
2 | 0.979150 | 0.377479 | 0.083386 | -0.107285 |
3 | -0.176661 | 0.096700 | 0.841432 | 0.124089 |
4 | 1.488258 | 0.209315 | 0.602946 | 0.441837 |
df02 = pd.date_range()
Pandas存取CSV
写入CSV
df.to_csv('foo01.csv')
# 不保存行索引
df.to_csv('foo02.csv', index=False)
读取CSV
read_csv = pd.read_csv('foo02.csv')
read_csv.head()
A | B | C | D | |
---|---|---|---|---|
0 | -0.132774 | -2.420509 | 0.559352 | -0.561248 |
1 | 1.114528 | 0.253100 | -0.677942 | 0.103792 |
2 | 0.979150 | 0.377479 | 0.083386 | -0.107285 |
3 | -0.176661 | 0.096700 | 0.841432 | 0.124089 |
4 | 1.488258 | 0.209315 | 0.602946 | 0.441837 |
读取CSV其他参数
pd.read_csv(
'foo02.csv', # 文件名
usecols=[0,1,2,4], # 读取指定列
nrows=5, # 读取前几行
encoding='GBK' # 编码,根据文本编码修改,默认utf-8,可以指定为GBK
)
A | B | C | D | |
---|---|---|---|---|
0 | -0.132774 | -2.420509 | 0.559352 | NaN |
1 | 1.114528 | 0.253100 | -0.677942 | NaN |
2 | 0.979150 | 0.377479 | 0.083386 | NaN |
3 | -0.176661 | 0.096700 | 0.841432 | NaN |
4 | 1.488258 | 0.209315 | 0.602946 | NaN |
x = pd.read_csv(
'foo02.csv',
parse_dates = {'timestamp': ['data','time']}, # 将两列合并解析为时间格式
index_col = 'timestamp' # 将时间设为行索引
)
- csv文件内有汉字等特殊符号时,csv文件编码应为utf-8(无BOM)可默认正常读取,如果编码是ANSI,加参数encoding=’GBK’
- 数据内有逗号时,左右加英文半角双引号,可以正常解析
Pandas存取HDF5
写入HDF5
df.to_hdf('foo.h5', 'df')
从HDF5读取
pd.read_hdf('foo.h5', 'df')
Pandas存取Excel(xlsx)
写入Excel文件
df.to_excel('foo.xlsx', sheet_name='Sheet1')
从Excel文件读取
pd.read_excel('foo.xlsx', 'Sheet1', index_col=None, na_values=['NA'])