pandas读取csv文件的一些运算操作

xiaoxiao2025-08-17  28

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')

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

2.  索引的操作

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

#通过数值直接切片的方式在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

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

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

4. 排序操作

# 根据行索引进行排序 由小到大 默认升序 file_data.sort_index().head() # 添加 ascending=Flase 改为降序 file_data.sort_index(ascending=Flase).head()

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

# 根据某一个字段的数值进行排序 也可以传入字段的列表进行排序 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()

 8. 累积统计函数

累计求和

# cumsum 计算前n个数的和 # 先进行排序在进行累加 f = file_data.sort_index(ascending=False) f['price_change'].cumsum()

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

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

9. 自定义函数(apply)

apply(func, axis=0)

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

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

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

 

 

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

转载请注明原文地址: https://www.6miu.com/read-5034940.html

最新回复(0)