首页 > 其他分享 >Pandas函数汇总

Pandas函数汇总

时间:2024-07-04 21:56:52浏览次数:15  
标签:index 函数 df Series 汇总 DataFrame 索引 pd Pandas

一、Pandas数据结构

        1. Series

                1)Series的创建

                        s = Series(a)   # a:列表或NumPy数组或字典

                2)Series的属性

                        s.values   # 值

                        s.index   # 索引

                3)Series的索引

                        (1) 显式索引(闭区间):

                                s[ key ] # 使用index中的元素作为索引值

                                s.loc[ key ] # 使用index中的元素作为索引值

                        (2) 隐式索引(半开区间):

                                s[ n ] # 使用整数作为索引值

                                s.iloc[ n ] # 使用整数作为索引值

                4)Series的切片

                        (1) 显式切片(闭区间):

                                s[key: key1]
                                s.loc[key: key1]

                        (2) 隐式切片(闭区间):

                                s[start: end]
                                s.iloc[start: end]      

                5)Series的属性和方法

                         (1) 属性:

                                s.shape  # 形状
                                s.size  # 元素个数
                                s.index  # 索引
                                s.values  # 值
                                s.dtype  # 元素类型

                         (2) 方法:

                                head(s)  # 查看前几条数据,默认5条

                                tail(s)  # 查看后几条数据,默认5条                    

                                pd.isnull(s)  # 检查是否为空

                                pd.notnull(s)  # 检查是否为非空

                                s.isnull()  # 检查是否为空

                                s.notnull()  # 检查是否为非空       

                6)Series的运算

                        (1) 适用于NumPy的数组运算也适用于Series

                                s + 100 # 加
                                s - 100 # 减
                                s * 100 # 乘
                                s / 100 # 除
                                s // 10 # 整除
                                s ** 2 # 幂

                        (2) Series之间的运算

                                s2 + s1 # 加
                                s2 - s1 # 减
                                s2 * s1 # 乘
                                s2 / s1 # 除
                                s2 // s1 # 整除
                                s2 ** s1 # 幂

                                s1.add(s2, fill_value)

        2. DataFrame

                1)DataFrame的创建

                        df = DataFrame(d) #d:字典

               2) DataFrame属性和方法                      

                        values # 值

                        columns # 列索引

                        index # 行索引

                        shape # 形状

                        head() # 查看前几行数据

                        tail() # 查看后几行数据        

                3)DataFrame的索引

                        (1) 对列进行索引                

                                通过类似字典的方式

                                通过属性的方式

                        (2) 对行进行索引

                                a.loc[ ] # index

                                a.iloc[ ] # 整数

                        (3) 对元素索引的方法

                                使用列索引

                                使用行索引(iloc[3,1]相当于两个参数;iloc[[3,3]] 里面的[3,3]看做一个参数)

                                使用values属性(二维numpy数组)     

                4)DataFrame的切片

                        # 索引: 优先使用列索引, 先取行就需要写loc或iloc
                        # 切片: 优先按行切片, 和Numpy操作类似

                5)DataFrame的运算

                        (1) DataFrame之间的运算

                                df1 + 100 # DataFrame和数的运算

                                df1 + df2 # DataFrame之间的运算

                                df1.add(df2, fill_value) # 自动填充, 再相加

                        (2)Series与DataFrame之间的运算

                                df1 + s # 直接相加

                                df1.add(s, axis) # 使用add函数

二、Pandas层次化索引

        1. 创建多层行索引

                1) 隐式构造

                        index参数传递两个或更多的数组

                        Series也可以创建多层索引

                2) 显示构造

                        pd.MultiIndex.from_arrays(array)

                        pd.MultiIndex.from_tuples(tuple)

                        pd.MultiIndex.from_product(product)

        2. 创建多层列索引(同行索引)

                        除了行索引index,列索引columns也能用同样的方法创建多层索引

        3. 多层索引对象的索引与切片操作

                1)Series的操作

                        s['1班'] # 显式索引
                        s.loc['1班'] # 显式索引

                        s[1] # 隐式索引
                        s.iloc[1] # 隐式索引

                        s['1班': '1班'] # 显式切片
                        s.loc['1班': '2班'] # 显式切片

                        s[1: 4] # 隐式切片
                        s.iloc[1: 5] # 隐式切片

                2)DataFrame的操作

                        df['期中']# 列索引

                        df.loc['1班'] # 行索引

                        df.iloc[1:5]# 行切片

                        df.iloc[:, 1: 5]# 列切片

        4. 索引的堆叠

                df.stack(level,fill_value)

                df.unstack(level,fill_value)

        5. 聚合操作

                 df.sum(axis, level) # 求和

                 df.average(axis, level) # 平均值

                 df.max(axis, level) # 最大值

                 df.min(axis, level) # 最小值

三、Pandas数据合并

        1. 使用pd.concat()级联

                (1) 简单级联

                        pd.concat([df1, df2]) # 上下合并,垂直合并

                        pd.concat([df1, df2], axis=1)  # 左右合并,水平合并

                        pd.concat([df1, df2], ignore_index=True)  # 忽略行索引,重置行索引

                        pd.concat([df1, df2], keys=['x', 'y'])  # 使用多层索引 keys 

                (2) 不匹配级联

                        pd.concat([df3, df4]) # 对应索引没有值的会自动用NaN填充

                        pd.concat([df3, df4], join='outer') # 外连接:补NaN(默认模式), 默认 值 outer,                                                                                 类似并集, 所有数据都会显示

                        pd.concat([df3, df4], join='inner')# 内连接:只连接匹配的项, 交集, 只显示共同的                                                                                列行

        2. 使用append()函数添加

                df3.append(df4, sort)

        3.使用merge()合并

                1) 合并

                        df1.merge(df2)

                2) key的规范化

                        df1.merge(df2, on)

                        df1.merge(df2, left_on, right_on)

                3) 内合并与外合并

                        df1.merge(df2, how)

                4) 添加后缀

                        df1.merge(df2, on, suffixes)

四、Pandas缺失值处理

        1. 判断函数:

                df.isnull().any(axis)  # 常用, 尽可能找到所有的空值

                df.notnull().all(axis)  # 常用,尽可能找到所有的空值

        2. 过滤函数

                df.dropna()  # 默认是删除有空的行

                df.dropna(axis=1)  # 删除有空的列

                df.dropna(how='any')  # 默认值,默认有空就会删除

                df.dropna(how='all', axis=1)  # 所有的值都为空(整行或整列为空),才删除

                df2.dropna(inplace=True) # inplace=True: 表式修改原数据

        3. 填充函数 Series/DataFrame

                df.fillna(value=100)# 填充

                df2.fillna(value=100, limit=1, inplace=True)# limit: 限制对应维度上填充的次数

                df.fillna(method='ffill')  # 用上面数据来填充自己

                df.fillna(method='bfill')  # 用下面数据来填充自己

                df.fillna(method='ffill', axis=1)  # 用左边数据来填充自己

                df.fillna(method='bfill', axis=1)  # 用右边数据来填充自己

五、Pandas处理重复值和异常值

        1. 删除重复行

                df.duplicated(keep='first')  # 保留第一行

                df.duplicated(keep='last')  # 保留最后一行

                df.duplicated(keep=False)  # 标记所有重复行

        2. 映射

                1) replace()函数:替换元素

                2) map()函数: 适合处理某一单独的列

                3) rename()函数:替换索引

                4) apply()函数:既支持 Series,也支持 DataFrame

                5) transform()函数

        3. 异常值检测和过滤

                describe(): 查看每一列的描述性统计量

                df.std() : 可以求得DataFrame对象每一列的标准差

                df.drop(): 删除特定索引

                unique() : 唯一,去重

                query() : 按条件查询

                df.sort_values(): 根据值排序

                df.sort_index(): 根据索引排序

                df.info(): 查看数据信息

        4. 抽样

                使用.take()函数排序

                可以借助np.random.permutation()函数随机排序

六、Pandas数学函数

        1. 聚合函数

                df.count() # 非空值的数量

                df.max() # 最大值,axis=0/1

                df.min() # 最小值, axis=0/1

                df.median() # 中位数

                df.sum() # 求和

                df.mean(axis=1) # 每一行的平均值

                df[0].value_counts() # 统计元素出现次数

                df.cumsum() # 累加

                df.cumprod() # 累乘

                df.var() # 方差

                df.std() # 标准差

        2. 其他数学函数

                df.cov() # 协方差

                df.corr() # 所有属性相关性系数

                df.corrwith(df[2]) # 单一属性相关性系数

七、 数据分组聚合

        df.groupby(by='color') # 使用.groups属性查看各行的分组情况:

        df.groupby(by='color').groups # 根据color进行分组

        df.groupby(by='color').sum() # 分组 + 聚合

八、Pandas加载数据

        1.CSV数据

                df.to_csv('data.csv',sep header, index)# 保存到csv

                pd.read_csv('data.csv',sep,header,index_col) # 加载csv数据

                pd.read_table('data.csv', sep,header,index_col)  # 加载csv数据

         2.excel数据

                df.to_excel('data.xls',sheet_name,header,index)# 保存到excel文件

                pd.read_excel('data.xls',sheet_name,header,names,index_col)# 读取excel

         3.MySQL数据

                df.to_sql('score', conn,index,if_exists) # 保存到MySQL

                pd.read_sql('select * from score',conn,index_col) # 从MySQL中加载数据

九、Pandas分箱操作

        df.Python.values # 对Python列进行分箱

        pd.cut(df.Python, bins) # 等宽分箱

        pd.cut(df.Python,bins,right,labels) # 指定宽度分箱

        pd.qcut(df.Python,q,labels) # 等频分箱

十、Pandas绘图  

        1. 折线图

                s.plot()

        2. 条形图/柱形图

                s.plot(kind='barh')   # 条形图

                s.plot(kind='bar')   # 柱状图

        3. 饼图

                df.plot.pie(subplots, figsize, autopct)

        4. 散点图

                df.plot(kind='scatter', x='A', y='B') # scatter: 散点图

                df.plot.scatter(x='A', y='B')  # A和B关系绘制

        5. 面积图

                df.plot.area(stacked)  # stacked 是否堆叠

        6. 箱型图

                df.plot.box()

                df.plot(kind='box')

        7. 直方图

                df.plot.hist(alpha) # 带透明度直方图

                df.plot.hist(stacked)  # 堆叠图

                df['A'].plot(kind='hist')

                df.plot(kind='hist')


                

                

        

        

                

                

                

                           

标签:index,函数,df,Series,汇总,DataFrame,索引,pd,Pandas
From: https://blog.csdn.net/qq_41600393/article/details/140158755

相关文章

  • Matplotlib函数汇总
    一、基本图形绘制        1. 绘制基本图形                plt.plot()        2. 样式和颜色        样式:'-','--','-.',':','.',',',,o,^,v,<,>,s,+,x,D,d,1,2,3,                    4,h,H......
  • SQL246 获取employees中的first_name (RIGHT和LEFT函数)
    题目连接selectfirst_namefromemployeesorderbyright(first_name,2);MySQL中的RIGHT()和LEFT()函数是用于从字符串中提取子字符串的内置函数。LEFT()函数用于从字符串的左侧开始提取指定数量的字符。其基本语法如下:LEFT(str,len)str是要从中提取字符的原......
  • 泛语言计划 第二弹 函数
    开始之前,我们先复习一下数学中是怎么定义函数的。数集A和B,如果A所有数在B中都存在且只有一个数与之对应,则称B是A的函数由此,我们可以看出一个关键词:对应。编程中的函数也一样,只是编程中不一定是数,也可以是布尔值、字符串,甚至操作。这个A集,我们叫他参数,B集,叫他返回值。如果B是操......
  • Python酷库之旅-第三方库Pandas(001)
    目录一、Pandas库的由来1、背景与起源1-1、开发背景1-2、起源时间2、名称由来3、发展历程4、功能与特点4-1、数据结构4-2、数据处理能力5、影响与地位5-1、数据分析“三剑客”之一5-2、社区支持二、Pandas库的应用场景1、数据分析2、数据清洗3、数据可视化4、......
  • 7.1.SQL注入-基于函数报错的方式来利用updatexml()
    基于函数报错的方式来进行利用-字符型(本页updatexml())前提条件是后台数据库没有屏蔽数据库语法报错信息updatexml()方法详解注释:第一个参数,意思就是xml文档的名称第二个参数,意思就是定位到xml文档中指定的某一个位置的更新第三个参数,意思就是将文档中指定某一个位置......
  • 7.2.SQL注入-基于函数报错extractvalue(),floor()
    注入基于函数报错extractvalue(),floor()-字符型基于extractvalue()爆出数据库版本payload语句:kobe'andextractvalue(0,concat(0x7e,version()))#爆出数据库版本基于floor()floor()函数就是取整数爆出数据版本信息kobe'and(select2from(selectcount(*),......
  • YOLOv5改进 | 损失函数 | EIoU、SIoU、WIoU、DIoU、FocuSIoU等多种损失函数
    秋招面试专栏推荐 :深度学习算法工程师面试问题总结【百面算法工程师】——点击即可跳转   ......
  • Nuxt3 的生命周期和钩子函数(十)
    title:Nuxt3的生命周期和钩子函数(十)date:2024/6/30updated:2024/6/30author:cmdragonexcerpt:摘要:本文详细介绍了Nuxt3框架中的五个webpack钩子函数:webpack:configResolved用于在webpack配置解析后读取和修改配置;webpack:compile在编译开始前调用,可修改编译选项;webpa......
  • C#常用 API函数大全
    1.API之网络函数WNetAddConnection创建同一个网络资源的永久性连接WNetAddConnection2创建同一个网络资源的连接WNetAddConnection3创建同一个网络资源的连接WNetCancelConnection结束一个网络连接WNetCancelConnection2结束一个网络连接WNetCloseEnum结束一次枚举操作WN......
  • QThread::run函数的使用(涉及到QThread::run, Qthread::start,protected,virtual虚函数,o
    RobotCommuServer.h#ifndefROBOTCOMMUSERVER_H#defineROBOTCOMMUSERVER_H#include<QThread>classRobotCommuServer:publicQThread{Q_OBJECTpublic:explicitRobotCommuServer(QObject*parent=nullptr);~RobotCommuServer();void......