量化交易系列【1】常用的Pandas数据统计及计算相关函数

简介: 量化交易系列【1】常用的Pandas数据统计及计算相关函数

1. pd.read_csv读取CSV文件,查看数据


示例中使用的‘000001.XSHE.csv’文件,以上传至csdn资源中,可直接下载


import pandas as pd
# 读取CSV文件
df = pd.read_csv('./000001.XSHE.csv')
• 1
• 2


# 显示前n行,默认是5
df.head(5)



date
open close high low volume money
0 2015/1/5 9.98 10.00 10.17 9.74 458099037 4.565388e+09
1 2015/1/6 9.90 9.85 10.23 9.71 346952496 3.453446e+09

2 2015/1/7 9.72 9.67 9.88 9.55 272274401 2.634796e+09
3 2015/1/8 9.68 9.34 9.72 9.30 225445502 2.128003e+09
4 2015/1/9 9.30 9.42 9.91 9.19 401736419 3.835378e+09


# 显示后n行,默认是5
df.tail(5)


image.png


# 查看数据形状
df.shape
• 1
• 2
(1878, 7)
• 1
# 统计数据样本值
df.describe()


image.png


2. 统计函数:mean,max,min等


# 求均值
df['close'].mean()
• 1
• 2
12.477007454739086
• 1
# 求最大值
df['close'].max()
24.57
• 1
# 求最小值
df['close'].min()
• 1
• 2
7.15
• 1

# 求标准差
df['close'].std()
4.057594705064531
• 1
# 求中位数
df['close'].median()
• 1
• 2
11.865

# 求分位数,以0.25为例,表示%25分位数
df['close'].quantile(0.25)
• 1
• 2
8.8


3. shift函数:行移动指定位数


Pandas的shift函数可以将DataFrame移动指定的位数


df1 =df.head(5)
• 1
df1


image.png


df1['昨天的收盘价'] = df1['close'].shift(1)   # 1表示将收盘价整体下移1行
• 1
df1[['date','close','昨天的收盘价']]


image.png


4. diff函数:求两行差


# 计算今天的涨跌幅具体指 = 今天收盘价 - 昨天收盘价
df1['涨跌值'] = df1['close'].diff(1)  # 标志求下一行与上一行之差
df1[['date','close','涨跌值']]


image.png


5. pct_change函数:求变化比例


求两个数差值的比例, 与diff类似。但是diff求的是差值,pct_change求的是变化比例


# 求今天的涨跌幅比例 = (今天收盘价 - 昨天收盘价) / 昨天收盘价
df1['涨跌幅_百分比'] = df1['close'].pct_change()
df1[['date','close','涨跌幅_百分比']]


image.png


6. cum函数:累加


# 计算成交量
df1['成交量_cum'] = df1['volume'].cumsum()  #该列的累加
df1[['date','volume','成交量_cum']]


image.png


7. cumprod函数:累乘


# 计算涨跌幅曲线: 假设起始资金1元钱,资金的变化曲线
df1['涨跌幅变化曲线'] =(df1['涨跌幅_百分比'] + 1).cumprod()
df1[['date','close','涨跌幅_百分比','涨跌幅变化曲线']]


image.png

8. rank函数:用于计算排名


# 举例:按照收盘价进行排名
# pct参数如果设置为True,则表示以百分比形式排名
df1['收盘价_排名'] = df1['close'].rank(ascending=True,pct=False)
df1[['date','close','收盘价_排名']]

image.png


9. value_counts函数:统计出现次数


统计该列中每个元素出现的次数,返回Series


df['股票代码'].value_counts()
相关文章
|
4月前
|
存储 数据挖掘 数据处理
Pandas中explode()函数的应用与实战
Pandas中explode()函数的应用与实战
75 0
|
4月前
|
数据挖掘 数据处理 索引
python常用pandas函数nlargest / nsmallest及其手动实现
python常用pandas函数nlargest / nsmallest及其手动实现
137 0
|
4月前
|
人工智能 数据处理 计算机视觉
Pandas数据处理——渐进式学习、DataFrame(函数检索-请使用Ctrl+F搜索)
Pandas数据处理——渐进式学习、DataFrame(函数检索-请使用Ctrl+F搜索)
121 0
|
4月前
|
数据处理 索引 Python
使用pandas的merge()和join()函数进行数据处理
使用pandas的merge()和join()函数进行数据处理
79 2
|
13天前
|
SQL JSON 数据可视化
Pandas库常用方法、函数集合
Pandas库常用方法、函数集合
|
15天前
|
存储 索引 Python
高效的5个pandas函数,你都用过吗?
高效的5个pandas函数,你都用过吗?
|
15天前
|
索引 Python
高效的10个Pandas函数,你都用过吗?
高效的10个Pandas函数,你都用过吗?
|
2月前
|
SQL 并行计算 API
Dask是一个用于并行计算的Python库,它提供了类似于Pandas和NumPy的API,但能够在大型数据集上进行并行计算。
Dask是一个用于并行计算的Python库,它提供了类似于Pandas和NumPy的API,但能够在大型数据集上进行并行计算。
|
3月前
|
Python
pandas中groupby和shift结合实现相邻行的计算
pandas中groupby和shift结合实现相邻行的计算
35 0
|
4月前
|
机器学习/深度学习 存储 算法
Pandas中的get_dummies()函数实战应用详解
Pandas中的get_dummies()函数实战应用详解
96 1