说起pandas这个是python数据清洗的利器,它可以让你像sql一样操作数据,同时可以对数据进行各种计算,转换完成后还可以方便的存储到excel,转化为array、Matrix供进一步(模型)使用。

但是网上关于pandas的知识点比较散,分门别类的来介绍pandas的常用函数,能够满足你对于pandas学习的所有需要,本文介绍的函数在实际中非常实用。

本文中,我们将使用如下缩写:

df #任何pandas DataFrame对象
s #任何pandas series对象

首先需要先导入2个库:

import pandas as pd
import numpy as np

从各种不同的来源和格式导入数据

pd.read_csv(filename) # 从CSV文件
pd.read_table(filename) # 从分隔的文本文件(例如CSV)中
pd.read_excel(filename) # 从Excel文件
pd.read_sql(query, connection_object) # 从SQL表/数据库中读取
pd.read_json(json_string) # 从JSON格式的字符串,URL或文件中读取。
pd.read_html(url) # 解析html URL,字符串或文件,并将表提取到数据帧列表
pd.read_clipboard() # 获取剪贴板的内容并将其传递给 read_table()
pd.DataFrame(dict) # 从字典中,列名称的键,列表中的数据的值

导出数据

使用以下命令将DataFrame导出为CSV,.xlsx,SQL或JSON。

df.to_csv(filename) # 写入CSV文件
df.to_excel(filename) # 写入Excel文件
df.to_sql(table_name, connection_object) # 写入SQL表
df.to_json(filename) # 以JSON格式写入文件

创建测试对象

pd.DataFrame(np.random.rand(20,5))               # 5列20行随机浮点数
pd.Series(my_list)                               # 从一个可迭代的序列创建一个序列 my_list
df.index = pd.date_range('1900/1/30', periods=df.shape[0]) # 添加日期索引

查看、检查数据

df.head(n)                       # DataFrame的前n行
df.tail(n)                       # DataFrame的最后n行
df.shape                         # 行数和列数
df.info()                        # 索引,数据类型和内存信息
df.describe()                    # 数值列的摘要统计信息
s.value_counts(dropna=False)     # 查看唯一值和计数
df.apply(pd.Series.value_counts) # 所有列的唯一值和计数

数据选取

使用这些命令选择数据的特定子集。
df[col]               # 返回带有标签col的列
df[[col1, col2]]      # 返回列作为新的DataFrame
s.iloc[0]             # 按位置选择
s.loc['index_one']    # 按索引选择
df.iloc[0,:]          # 第一行
df.iloc[0,0]          # 第一栏的第一元素

数据清理

使用这些命令可以执行各种数据清理任务。

df.columns = ['a','b','c']                  # 重命名列
pd.isnull()                                 # 空值检查,返回Boolean Arrray
pd.notnull()                                # 与pd.isnull() 相反
df.dropna()                                 # 删除所有包含空值的行
df.dropna(axis=1)                           # 删除所有包含空值的列
df.dropna(axis=1,thresh=n)                  # 删除所有具有少于n个非null值的行
df.fillna(x)                                # 将所有空值替换为x
s.fillna(s.mean())                          # 用均值替换所有空值(均值可以用统计模块中的几乎所有函数替换 )
s.astype(float)                             # 将系列的数据类型转换为float
s.replace(1,'one')                          # 1 用 'one'
s.replace([1,3],['one','three'])            # 替换所有等于的值 替换为所有1 'one' ,并 3 用 'three'
df.rename(columns=lambda x: x + 1)          # 列的重命名
df.rename(columns={'old_name': 'new_ name'})# 选择性重命名
df.set_index('column_one')                  # 更改索引
df.rename(index=lambda x: x + 1)            # 大规模重命名索引

筛选,排序和分组依据

使用这些命令可以对数据进行过滤,排序和分组。

df[df[col] > 0.5]                      # 列 col 大于 0.5
df[(df[col] > 0.5) & (df[col] < 0.7)]  # 小于 0.7 大于0.5的行
df.sort_values(col1)                   # 按col1升序对值进行排序
df.sort_values(col2,ascending=False)   # 按col2 降序对值进行 排序
df.sort_values([col1,col2],ascending=[True,False]) #按 col1 升序排序,然后 col2 按降序排序
df.groupby(col)                        #从一个栏返回GROUPBY对象 df.groupby([col1,col2]) # 返回来自多个列的groupby对象
df.groupby(col1)[col2]                 # 返回中的值的平均值 col2,按中的值分组 col1 (平均值可以用统计模块中的几乎所有函数替换 )
df.pivot_table(index=col1,values=[col2,col3],aggfunc=mean) # 创建一个数据透视表组通过 col1 ,并计算平均值的 col2 和 col3
df.groupby(col1).agg(np.mean)          # 在所有列中找到每个唯一col1 组的平均值
df.apply(np.mean)                      #np.mean() 在每列上应用该函数
nf.apply(np.max,axis=1)                # np.max() 在每行上应用功能

数据合并

使用这些命令可以将多个数据帧组合为一个数据帧。

df1.append(df2)                   # 将df2添加 df1的末尾 (各列应相同)
pd.concat([df1, df2],axis=1)      # 将 df1的列添加到df2的末尾 (行应相同)
df1.join(df2,on=col1,how='inner') # SQL样式将列 df1 与 df2 行所在的列col 具有相同值的列连接起来。'how'可以是一个 'left', 'right', 'outer', 'inner'

数据统计

使用这些命令来执行各种统计测试。(这些也都可以应用于系列。)

df.describe()    # 数值列的摘要统计信息
df.mean()        # 返回均值的所有列
df.corr()        # 返回DataFrame中各列之间的相关性
df.count()       # 返回非空值的每个数据帧列中的数字
df.max()         # 返回每列中的最高值
df.min()         # 返回每一列中的最小值
df.median()      # 返回每列的中位数
df.std()         # 返回每列的标准偏差
本文翻译自文章:https://www.dataquest.io/blog/pandas-cheat-sheet/,同时添加了部分注解。
- END -
-----------------
长按识别下方二维码,并关注公众号1.回复“PY”领取1GB Python数据分析资料2.回复“BG”领取3GB 名企数据分析报告

66个最常用的pandas数据分析函数相关推荐

  1. Python数据分析之:pandas拓展数据分析函数(cum / rolling ) / 作图功能

    文章目录 1. pandas拓展数据分析函数 1.1 .cum() 1.1.1 .cumsum():累加 1.1.2 .cumprod():累乘 1.1.3 .cummax():前n个数依次求最大值 ...

  2. PANDAS 数据合并与重塑(concat篇) 原创 2016年09月13日 19:26:30 47784 pandas作者Wes McKinney 在【PYTHON FOR DATA ANALYS

    PANDAS 数据合并与重塑(concat篇) 原创 2016年09月13日 19:26:30 标签: 47784 编辑 删除 pandas作者Wes McKinney 在[PYTHON FOR DA ...

  3. python对excel操作简书_Python实现EXCEL常用操作——pandas简介

    知乎的代码块太丑了,这里的内容就更新到简书了Python实现EXCEL常用操作--pandas简介​www.jianshu.com EXCEL是日常办公最常用的软件,然而遇到数据量特别大(超过10W条 ...

  4. 【Python】图解Pandas数据合并:concat、join、append

    公众号:尤而小屋 作者:Peter 编辑:Peter 图解pandas数据合并:concat+join+append 在上一篇文章中介绍过pandas中最为常用的一个合并函数merge的使用,本文中介 ...

  5. 几款强大的 Pandas 数据探索工具,推荐收藏使用

    对于 Python 数据分析领域,Pandas 绝对是中坚力量,那么围绕着这个工具,又衍生出了很多辅助工具,今天我们就一起来看看辅助 Pandas 来进行数据探索的几种工具 首先我们先来看看我们的测试 ...

  6. pandas数据合并与重塑_PANDAS 数据合并与重塑(concat篇)

    pandas作者Wes McKinney 在[PYTHON FOR DATA ANALYSIS]中对pandas的方方面面都有了一个权威简明的入门级的介绍,但在实际使用过程中,我发现书中的内容还只是冰 ...

  7. Cris 的 Python 数据分析笔记 05:Pandas 数据读取,索引,切片,计算,列整合,过滤,最值

    Pandas 数据读取,索引,切片,计算,列整合,过滤,最值 文章目录 Pandas 数据读取,索引,切片,计算,列整合,过滤,最值 1. read_csv 函数 2. DataFrame 数据结构的 ...

  8. 【转载】Python遍历pandas数据方法总结

    转载自脚本之家 https://www.jb51.net/article/134753.htm <Python遍历pandas数据方法总结> 贴4条常用的,其他的移步原帖链接. 列表解析方 ...

  9. Python pandas数据分列,分割符号固定宽度

    背景 数据分列在数据处理中很常见,数据分列一般指的都是字符串分割,这个功能在Excel里面很实用,处理数据非常方便,那么在pandas数据框中怎么使用呢,今天这篇文章就来详细介绍下 分列 模拟数据 以 ...

最新文章

  1. 显微镜下的大明内容_《显微镜下的大明》epub、mobi、azw3
  2. java多线程封装_Java 多线程处理任务的封装
  3. android text字体居中显示,Android Canvas的drawText()和文字居中方案
  4. .net Remoting(1)基本内容
  5. 学习Kotlin(五)函数与Lambda表达式
  6. c++学习笔记之输入/输出流
  7. Java开发中遇到具有挑战的事_Java并发编程的挑战:遇到的问题及如何解决
  8. devops的五个要素_DevOps诗歌大满贯:DevOps艺术的五首诗
  9. iOS 使用符号断点定位警告约束警告-[LayoutConstraints] Unable to simultaneously satisfy constrai...
  10. Fatal error: Call to undefined function ParCv() in E:\AppServ\www\include\dedesql.class.php on line
  11. Javascript-introduce
  12. java游戏 飞机对战
  13. 【软件教程】解决kali无法和windows实现复制黏贴互通
  14. YGG:2021年年终回顾
  15. 面试-操作系统-进程管理-进程-进程调度-死锁
  16. 理光M2004文件服务器,理光mp2014打印机怎么连接到电脑
  17. 约瑟夫环:设编号为1,2,…n的n个人围坐一圈,约定标号为k的人从1考试报数,数到m的那个人出列,他的下一位又从1开始报数,数到m的那个人又出列,依次类推,直到所有人出列为止
  18. Mysql-计算两个时间之间的差值
  19. python+adb 控制安卓手机拍照并传电脑
  20. 51nod1693 水群

热门文章

  1. 从零开始编写一个宠物识别系统(爬虫、模型训练和调优、模型部署、Web服务)
  2. 2021年全球与中国医用X射线设备行业市场规模及发展前景分析
  3. 01-html基础知识
  4. word 怎么把左边目录显示出来
  5. Python正则表达式: 元字符/转义/分组/匹配原则/re模块属性方法大全
  6. OSChina 周四乱弹 —— 凶宅和女友有啥关系
  7. 【转载】常见的C++数学计算库
  8. 网站微信扫码登录总结
  9. 竞选计算机课代表演讲稿开头,竞选课代表的演讲稿模板集锦8篇
  10. unity如何与服务器数据交互