首页 > 其他分享 >pandas 函数

pandas 函数

时间:2022-11-20 16:58:51浏览次数:36  
标签:返回 index 股票代码 函数 df str pandas

pandas 函数

最近在对股票数据进行清洗和计算的过程中,遇到了不少对这个库函数的使用,所以做了个函数使用总结。

轴的理解

pandas 很多函数会指定轴,要正确理解轴的含义,才容易明白函数意义

ax0 选中列,对行进行函数应用 ax1 选中行,对列进函数应用

我的理解是先看选中了啥,然后应用操作,例如默认的都是 ax0 ,代表选中了列,多行进行运算操作。

常用函数手册

信息

函数说明
df.shape 输出dataframe有多少行,多少列
df.shape[0] 输出行数量,1 输出列数量
df.colums 输出列的名字
df.index 输出行的名字
df.dtpyes 输出列的类型名
df.head(n) 输出df前n行
df.tail(n) 输出df后n行
df.sample(n=3) 随机抽取几行
df.describe() 对数字进行一个简单直观统计

行操作

函数说明
loc['index名'] 索引某行,返回Series
loc['index名n':'index名m'] 索引多行,返回DataFrame
loc[:,'date':'code'] 索引所有行,列为date,code ,返回DataFrame
at[index,'code'] 访问某个元素,loc也可以,但更为高效
iloc[n] 以序号选取某一行,返回Series
iloc[n:m] 序号多行选择,返回DataFrame
iloc[:,n:m] 第一个:选择所有,逗号后面的是多列选择,
返回DataFrame
iloc[:,:] 读取所有行和列,返回DataFrame
iat[1,1] 读取指定的某个元素,
使用iloc也可以,但这个更高效

列操作

函数说明
df['股票名']+'_地产' 原有字符上添加新字符
df['收盘价']*df['成交量'] 多列操作运算,eg:结果是成交额
df['新列名']=df['股票名']+'_地产' 新增一列

统计函数

函数说明
df['收盘价'].mean() 一列求均值,返回一个数
df[['收盘价','最高价']].mean() 多列求均值,返回多个数
df[['收盘价','最高价']].mean(axis=1) 选择行,操作多列,返回所有行对应的均值
默认axis=0,选中列,操作多行
df['收盘价'].max() 原理同上,返回最大值
df['收盘价'].min() 原理同上,返回最小值
df['收盘价'].std() 原理同上,返回标准差
df['收盘价'].count() 原理同上,返回非空数值数量
df['收盘价'].median() 原理同上,返回中位数
df['收盘价'].quantile(0.5) 原理同上,返回50%分位数

很有用的函数

函数说明
shif() 偏移函数,大于0 下偏移
diff() 偏移差值函数
pct_change() 偏移差值比例函数,相当于涨跌幅
rank(ascending=True,
pct=False)
排序函数,ascending代表顺序排序
还是逆序排序,pct是否百分比排序(0-1.0)
value_counts() 统计该列中每个元素出现的个数,
返回数据Series
df['收盘价_3天均值']=df['收盘价'].rolling(3).mean() rolling函数,取最近的n行,
其实就是一个滑动窗口
df['收盘价_至今均值']=df['收盘价'].expanding().mean() expanding函数,从开始到当前行

筛选

函数说明
df[df['code'] = '000001'] 返回符合筛选条件的行,
多个条件用 & 等逻辑符链接

缺省值

函数说明
dropna(how='any') 删除带有空值的行,
how='any'意味着,只要有一个空值就删除
how='all'要全是空值才删除
dropna(subset=['code','name'],how='any') 选中对应的列符合空值删除行
fillna(value='我叫补全') 缺失值补全为固定值
df['某列'].fillna(value=df['收盘价'],inplace=True) 某列空值以某列数值补全
fillna(method='ffill') 向上寻找非空值补全
fillna(method='bfill') 向下寻找非空值补全
fillna(method='bfill') 向下寻找非空值补全
notnull() 非空值判断
isnull() 空值判断
df[df['某列'].notnull()] 以某列不为空作为条件,行输出

排序函数

函数说明
reset_index(inplace=True) 索引恢复为默认
sort_values(by=['date'],ascending=1) by参数指定按照什么进行排序,
ascending指定顺序还是逆序
sort_values(by=['code','date'],ascending=[1,1]) 多列进行排序,eg code 相等的放前面,
再按date进行排序

合并函数

函数说明
df1.append(df2,ignore_index=True) 拼接函数,ignore_index 是否忽略index名,
True重新给index, eg 上下拼接

去重

函数说明
drop_duplicates(subset=['股票代码','交易日期'],
keep= 'first')
inplace=True
subset 参数指定用那几列作为去重的依据,
若不指定则以全部列的数据做为判断,
keep 参数是指去重时保持上面一行
还是下面一行

其他重要的函数

函数说明
df.rename(colums={'MACD_金叉':'金叉'}) 可以字典形式对列名进行重命名
df.empty 是否为空
df.T 数据转置,行列互换

字符串处理

函数说明
df['股票代码'].str[:2] 对股票代码列的字符串去前两字符
df['股票代码'].str.upper() 对股票代码列的字符串转为大写
df['股票代码'].str.lower() 对股票代码列的字符串转为小写
df['股票代码'].str.len() 对股票代码列的字符串进行计算
df['股票代码'].str.strip() 对股票代码列的字符串进行空格去掉
df['股票代码'].str.contains('sz') 该列是否包含该字符
df['股票代码'].str.replace('sz','sh') 该列字符进行替换
df['股票代码'].str.split('; ') 对字符串进行分割
df['股票代码'].str.split('; ').str[:2] 对字符串进行分割后,取第一位置

时间处理

函数说明
df['交易日期']=pd.to_datetime(df['交易日期']) 将交易日期由字符串转成日期
df['交易日期'] 通过交易日期进行访问
df['交易日期'].dt.year 输出日期的年份
df['交易日期'].dt.month 输出日期的月份,其他雷同week
df['交易日期']+pd.Timedelta(days=1) 用于表示时间差数据

官方文档

上面都是一些很常用的函数,官方文档才是最全的,数据清洗统计过程中常常去这里查吧。

官方使用手册

https://pandas.pydata.org/pandas-docs/stable/user_guide/10min.html#operations

总结于 2022 年 11 月 20 日 16:27:55

 

标签:返回,index,股票代码,函数,df,str,pandas
From: https://www.cnblogs.com/sykent/p/16908857.html

相关文章

  • 45.自定义函数实现分组统计
    #自定义函数实现分组统计#能过自定义的函数实现分组统计importpandasaspddf=pd.read_excel('电脑配件销售记录.xlsx')#print(df.head()))#回顾知识点#p......
  • django-视图函数
    django中的视图函数分为两类,CBV和FBV FBV:一条路由对应一个函数 CBV:一条路由对应一个类,该类必须继承fromdjango.viewsimportView类urlpatterns=[re_path(......
  • 玩转SQLite-11:C语言高效API之sqlite3_prepare系列函数
    SQLite是一个跨平台的轻量级数据库,支持C/C++开发,可用于嵌入式中,关于C/C++使用SQLite的简单实例,之前​​这篇文章​​,已经介绍过一种简单的使用方式。本篇来介绍另一种更加高......
  • 44.对一列或多列使用聚合函数 (分组后使用函数计算)
     -----------------------------------------------------------------------------------------------------------------------------------------------------------......
  • c++:函数的重载
    一、重载的定义对于同一种功能但是参数不一样的函数,使用重载就可以实现功能相同的函数拥有相同的函数名,在调用函数的时候,通过实参的类型,判断调用哪个函数。【不使用重载......
  • 【Unity3D】Unity 脚本 ③ ( C# 脚本的执行入口函数 | 获取当前游戏物体及物体名称 |
    文章目录​​一、C#脚本的执行入口函数​​​​二、获取当前游戏物体及物体名称​​​​三、获取游戏物体的Transform组件数据​​​​四、UnityEngine命名空间简介......
  • Springboot启动之后立即执行某些方法可以怎么做?Springboot生命周期,Springboot生命周期
    文章目录​​写在前面​​​​一、直接在启动类中写逻辑​​​​一般主启动类​​​​改良后的主启动类​​​​总结​​​​二、使用ApplicationRunner或CommandLineRunner......
  • Js函数:计算器、复选框
    <!DOCTYPEhtml><html><head><metacharset="utf-8"><title></title><script>functionmyFunction(){......
  • 七、函数
    七、函数简单说,函数就是一段封装好的,可以重复使用的代码,它使得我们的程序更加模块化,避免大量重复的代码。基本语法func函数名(形参列表)(返回值类型列表){执行语句......
  • respository coun函数报错
    在使用springdatar2dbcrespositorycount时报上面错误,排查后了现是这句this.handbookRepository.count()代码报错。看了下实体类主键ID上没有加@Id注解,加上后运行正......