Python--Pandas简单了解

Python--Pandas简单了解

1. Pandas介绍

1.1 Pandas介绍 - 数据处理工具

  • panel + data + analysis
  • panel面板数据 - 计量经济学 三维数据

1.2 为什么使用Pandas

  • 便捷的数据处理能力
  • 读取文件方便
  • 封装了MatplotlibNumpy的画图和计算

1.3 DataFrame

  • 结构:既有行索引,又有列索引的二维数组
  • 属性:
    • shape # (2,3)
    • index : 行索引,表名不同行,横向索引,叫index
    • columns : 列索引,表名不同列,纵向索引,叫columns
    • values :直接获取其中array的值
    • T : 转置
  • 方法:
    • head() 默认显示前5行,可指定head(3)
    • tail() 默认显示后5行
  • 3 DataFrame索引的设置
    • 1)修改行列索引值
    • 2)重设索引
    • 3)设置新索引

在这里插入图片描述

在这里插入图片描述


DataFrame索引的设置

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

在这里插入图片描述


  • Panel
    • DataFrame的容器
  • Series
    • 带索引的一维数组
    • 属性
      • index
      • values
  • 总结:
    • DataFrameSeries的容器
    • PanelDataFrame的容器

在这里插入图片描述

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)

在这里插入图片描述

  1. 直接索引
    • 先列后行
  2. 按名字索引
    • loc
  3. 按数字索引
    • iloc
  4. 组合索引
    • 数字、名字

在这里插入图片描述
在这里插入图片描述

2.2 赋值

在这里插入图片描述

2.3 排序

  • 对内容排序
    • dataframe
    • series
  • 对索引排序
    • dataframe
    • series

  • 使用df.sort_values(key= , ascending=)对内容进行排序
    • 单个键或者多个键进行排序,默认升序
    • ascending=False,降序
    • ascending=True,升序

  • 使用series.sort_values(ascending=)对内容进行排序
    • series排序时,只有一列,不需要参数
    • ascending=False,降序
    • ascending=True,升序
  • 使用series.sort_index(ascending=)对索引进行排序
    • 与df一致

在这里插入图片描述

3. DataFrame运算

算术运算

在这里插入图片描述

逻辑运算

  • 逻辑运算符
    • 布尔索引
- 逻辑运算函数
     -  `query()` 查询
     -  `isin()` 是不是在条件中

在这里插入图片描述

统计运算

  • min max mean median var std 最小值,最大值,均值,中位数,方差,标准差
    np.argmax()
    np.argmin()
    describe() 能够直接得出很多统计结果,count,mean,std,min,max
    • 计算平均值,标准差,最大值,最小值
conutNumber of non-NA observations
sumSum of values 值的总和
meanMean of values 数据的平均值
medianArithmetic median of values 数据的算数平均值
minMinimum 最小值
maxMaximum 最大值
modeMode 众数
absAbsolute Value 绝对值
prodProduct of values 值的积
stdBessel-corrected sample standard deviation 贝塞尔校正样本标准差
varUniblased variance 无偏方差;均方差
idxmaxcompute the index labels with the maximum 计算索引标签的最大值
idxmincompute 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 None
    • y : 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 None
    • sep :character, default','
    • columns: sequence, optional
    • mode: '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
      • 按照每行读取json对象
    • typ : default ‘frame’, 指定转换成的python教程对象类型series或者dataframe

在这里插入图片描述

2. to_json()

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值