Python–Pandas简单了解
1. Pandas介绍
1.1 Pandas介绍 - 数据处理工具
panel + data + analysis - panel面板数据 - 计量经济学 三维数据
1.2 为什么使用Pandas
- 便捷的数据处理能力
- 读取文件方便
- 封装了
Matplotlib 、Numpy 的画图和计算
1.3 DataFrame
- 结构:既有行索引,又有列索引的二维数组
- 属性:
shape # (2,3)index : 行索引,表名不同行,横向索引,叫indexcolumns : 列索引,表名不同列,纵向索引,叫columnsvalues :直接获取其中array的值T : 转置 - 方法:
head() 默认显示前5行,可指定head(3)tail() 默认显示后5行 - 3 DataFrame索引的设置


DataFrame索引的设置
- 以某列值设置为新的索引
set_index(keys, drop=True)
keys : 列索引名称或者列索引名称的列表drop :boolean, default True. 当作新的索引,删除原来的列

- 2
Panel
- 3
Series
- 总结:
DataFrame 是Series 的容器Panel 是DataFrame 的容器

2. 基本数据操作
2.1 索引操作
data = pd.read_csv("./stock_day/stock_day.csv")

data = data.drop(["ma5","ma10","ma20","v_ma5","v_ma10","v_ma20"], axis=1)

- 直接索引
- 按名字索引
- 按数字索引
- 组合索引
 
2.2 赋值

2.3 排序
- 使用
df.sort_values(key= , ascending=) 对内容进行排序
- 单个键或者多个键进行排序,默认升序
ascending=False ,降序ascending=True ,升序
- 使用
series.sort_values(ascending=) 对内容进行排序
- series排序时,只有一列,不需要参数
ascending=False ,降序ascending=True ,升序 - 使用
series.sort_index(ascending=) 对索引进行排序

3. DataFrame运算
算术运算

逻辑运算

统计运算
min max mean median var std 最小值,最大值,均值,中位数,方差,标准差np.argmax() np.argmin() describe() 能够直接得出很多统计结果,count,mean,std,min,max
conut | Number of non-NA observations |
---|
sum | Sum of values 值的总和 | mean | Mean of values 数据的平均值 | median | Arithmetic median of values 数据的算数平均值 | min | Minimum 最小值 | max | Maximum 最大值 | mode | Mode 众数 | abs | Absolute Value 绝对值 | prod | Product of values 值的积 | std | Bessel-corrected sample standard deviation 贝塞尔校正样本标准差 | var | Uniblased variance 无偏方差;均方差 | idxmax | compute the index labels with the maximum 计算索引标签的最大值 | idxmin | compute the index labels with the minimum 计算索引标签的最小值 |
- 对于单个函数去进行统计的时候,坐标轴还是按照这些默认为"columns"(axis=0, default), 如果要对行"index"需要指定(axis=1)

自定义运算
apply(func, axis=0)
func :自定义函数axis=0 :默认是列,axis=1为行进行运算 - 定义一个对列,最大值 最小值的函数

4. Pandas画图
pandas.DataFrame.plot
DataFrame.plot(x-None, y=None, kind='line')
x : label or positon, default Noney : label, positon or list of label , positions, default None
- Allows plotting of one colume versus another 允许绘制一列对另一列
kind : str
'line' : line plot (default) 折线图'bar' : vertical bar plot'barh' : horizontal bar plot'hist' : hisogram 直方图'pie' : pie plot 饼状图'scatter' : scatter plot 散点图
5 文件读取与存储
5.1 CSV
1. 读取csv文件-read_csv()
pandas.read_csv(filepath_or_buffer, sep=',' , delimiter = None)
filepath_or_buffer : 文件路径usecols : 指定读取的列名, 列表形式
2. 写入csv文件-to_csv()
DataFrame.to_csv(path_or_buf=None, sep=',' ,columns=None, header=True, index=True, index_label=None, mode='w', encoding=None)
path_or_buf : string or file handle, default Nonesep :character, default’,’columns : sequence, optionalmode : ‘w’:重写, ‘a’:追加index : 是否写进行索引header : boolean or list of string ,default True,是否写进索引值 Series.to_csv(path=None,index=True,sep=',',na_rep='',float_format=None,header=False,index_label=None,mode='w',encoding=None,compression=None,date_format=None,decimal='.')
data = pd.read_csv("stock_day2.csv", names=["open", "high", "close", "low", "volume", "price_change", "p_change", "ma5", "ma10", "ma20", "v_ma5", "v_ma10", "v_ma20", "turnover"])

5.2 HDF5
hdf5 存储 3维数据的文件
key1 dataframe1二维数据
key2 dataframe2二维数据
pd.read_hdf(path, key=)
df.to_hdf(path, key=)
1. 读取HDF5文件-read_hdf()
HDF5文件的读取和存储都需要指定一个键,值为要存储的DataFrame
pandas.read_hdf(path_or_buf, key=None, **kwargs) - 从h5文件中读取数据
path_or_buf : 文件路径key :读取的键mode :打开文件的模式return :Theselected object
需要安装tables模块避免不能读取HDF5文件
pip install tables
2. 写入HDF5文件-to_hdf()
DataFrame.to_hdf(path_or_buf, key, **kwargs)
path_or_buf : 文件路径key :读取的键mode :打开文件的模式return :Theselected object

5.3 JSON
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.
'split' :dict like {index -> [index], columns -> [columns], data -> [values]}'records' : list like [{column -> value}, …, {column -> value}]'index' : dict like {index -> {column -> value}}'columns' : dict like {column -> {index -> value}},默认该格式'values' : just the values array lines : boolean , default False
typ : default ‘frame’, 指定转换成的对象类型series或者dataframe

2. to_json()

|