1. 读取csv 文件数据, pandas可以读取的文件的种类非常的多(CSV、SQL、XLS、JSON、HDF5), 支持复杂的IO操作;

使用read_csv 这个方法就可以对csv格式的文件进行读取和修改的操作;

import pandas as pd
import numpy as np


# 读取csv文件 输入我们文件的路径
file_data = pd.read_csv('./stock_day.csv')

读取到的文件大致如下, 由于数据太多多以我们只展示部分数据进行演示:

csv行的索引 pandas csv索引_字段

2.  索引的操作

# axis 指定是0 轴还是 1轴 代表行列  使用drop删除我们不想展示的每一列的索引
file_data.drop(['ma5', 'ma10', 'ma20', 'v_ma5', 'v_ma10', 'v_ma20'], axis=1).head()

csv行的索引 pandas csv索引_数据_02

#通过数值直接切片的方式在pandas中无法使用, numpy可以
# 错误: file_data[:3, :3] 

# 在pandas 中我们获取索引的方式 可以根据行列的索引名称来进行获取  或者 使用 loc , iloc  以及 ix 组# 合索引来进行获取


# 1. 根据行列的索引名称来进行获取  先根据<列索引>在根据<行索引>进行索引  不可以进行调换
file_data["open"]["2018-02-27"]


# 2. loc 也是根据行列索引的名称来获取索引 与1正好相反  他是 先行后列
file_data.loc["2018-02-27"]["open"]


# 3. iloc 可以根据行列索引的位置来获取位置 , 它支持切片的操作 先行后列
file_data.iloc[0, 0]
file_data.iloc[:3, :3]


# ix 混合索引 先行后列 
file_data.ix[:3, :3]

 3. 赋值操作

# 增加一个列索引 下面的值为缺失值
file_data["New_valiue"] = np.nan

csv行的索引 pandas csv索引_数据_03

处理缺失值的操作方法(删除缺失值):

# 删除缺失值 指定 他的 轴
file_data.dropna(axis=1)

4. 排序操作

# 根据行索引进行排序  由小到大  默认升序
file_data.sort_index().head()

# 添加 ascending=Flase 改为降序
file_data.sort_index(ascending=Flase).head()

csv行的索引 pandas csv索引_csv行的索引_04

根据某一个字段的数值进行排序 也可以传入字段的列表进行排序 

# 根据某一个字段的数值进行排序 也可以传入字段的列表进行排序
file_data.sort_values("open")

file_data.sort_values(by="open", ascending=False).head()

Series排序

# Series 取字段索引进行排序
file_data["open"].sort_index().head()

# Series 取字段value进行排序
file_data["open"].sort_values().head()

 5. 算数运算

# 对这个字段的所有数据进行统计+1的一个操作
file_data['open'].add(1)

如果想要得到每天的涨跌大小, 收盘价减去开盘价

# 1. 收盘价-开盘价
ret = file_data["close"] - file_data["open"]

# 2. 收盘价-开盘价
close = file_data["close"]
open = file_data["open"]

ret1 = close.sub(open)

6. 逻辑判断

# 去一个字段进行 ><

file_data["open"] <0.5


# 使用query查询

file_data.query(条件是一个字符串)


# 判断字段的值是否在什么数值之间  也可传递列表 返回的是bool 类型 

file_data["open"].isin([0, 1]).head()

 7. 统计运算  求最大值 最小值 标准差 平均值 通过 describe 这个函数进行统计 

file_data.describe()
# 按列返回最小值, 返回对应的行索引   idxmax 最大值
file_data.min(axis=1).head()

csv行的索引 pandas csv索引_字段_05

 8. 累积统计函数

累计求和

# cumsum  计算前n个数的和

# 先进行排序在进行累加 

f = file_data.sort_index(ascending=False)
f['price_change'].cumsum()

csv行的索引 pandas csv索引_csv行的索引_06

 我们将这个连续求和的结果用图形的方式进行展示:

ret2 = f['price_change'].cumsum().plot()

csv行的索引 pandas csv索引_数据_07

9. 自定义函数(apply)

apply(func, axis=0)

比如可以可以定义一个函数, 使我们这个文件中的两个字段进行一个相减的一个运算

先找出我我们要进经运算的字段我们看一下:

csv行的索引 pandas csv索引_数据_08

# 0轴在这里代表列索引 1 代表行索引
file_data[['low', 'high']].apply(lambda x: x.max()-x.min(), axis=1)

 

csv行的索引 pandas csv索引_字段_09

 

file_data['open'].add(1) 测试结果:

csv行的索引 pandas csv索引_字段_10