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)
# 查看数据形状 df.shape • 1 • 2
(1878, 7) • 1
# 统计数据样本值 df.describe()
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
df1['昨天的收盘价'] = df1['close'].shift(1) # 1表示将收盘价整体下移1行 • 1
df1[['date','close','昨天的收盘价']]
4. diff函数:求两行差
# 计算今天的涨跌幅具体指 = 今天收盘价 - 昨天收盘价 df1['涨跌值'] = df1['close'].diff(1) # 标志求下一行与上一行之差 df1[['date','close','涨跌值']]
5. pct_change函数:求变化比例
求两个数差值的比例, 与diff类似。但是diff求的是差值,pct_change求的是变化比例
# 求今天的涨跌幅比例 = (今天收盘价 - 昨天收盘价) / 昨天收盘价 df1['涨跌幅_百分比'] = df1['close'].pct_change() df1[['date','close','涨跌幅_百分比']]
6. cum函数:累加
# 计算成交量 df1['成交量_cum'] = df1['volume'].cumsum() #该列的累加 df1[['date','volume','成交量_cum']]
7. cumprod函数:累乘
# 计算涨跌幅曲线: 假设起始资金1元钱,资金的变化曲线 df1['涨跌幅变化曲线'] =(df1['涨跌幅_百分比'] + 1).cumprod() df1[['date','close','涨跌幅_百分比','涨跌幅变化曲线']]
8. rank函数:用于计算排名
# 举例:按照收盘价进行排名 # pct参数如果设置为True,则表示以百分比形式排名 df1['收盘价_排名'] = df1['close'].rank(ascending=True,pct=False) df1[['date','close','收盘价_排名']]
9. value_counts函数:统计出现次数
统计该列中每个元素出现的次数,返回Series
df['股票代码'].value_counts()