pandas 库

  • Pandas
    • 创建一个 Series 对象 pd.Series()
    • 创建一个 DataFrame 对象 pd.DataFrame()
    • 数据清洗
      • 缺失值 NaN
        • 查找缺失值 isna()
        • 删除缺失值 dropna()
      • 重复值
        • 查找重复值 df.duplicated()
        • 删除重复值 df.drop_duplicates()
      • 异常值
        • 检查异常值 df.describe()
        • 筛选数据 df = [ df[列名] < num ]
    • 数据整理
      • 转换日期数据 pd.to_datetime()
      • 添加新列 df['要添加的新列的名字']
    • 数据写入 df.to_csv(path, encoding, index)
    • 分组与聚合

Pandas

# 导入 pandas 库
import pandas as pd

pandas 的数据结构有 SeriesDataFrame

Series 主要由一组数据及其对应的索引组成。

以下是一个 Series 对象例子:

import pandas as pd
s = pd.Series(['读书', '健身', '余闲', '投资'], index=[0, 1, 2, 3])
print(s)

输出:

0    读书
1    健身
2    余闲
3    投资
dtype: object

左边的数字是索引,右边的是数据。

数据底部的 dtype 指的是,pandas 库中的数据类型,而对应的 object 是 pandas 自定义的字符串类型。


创建一个 Series 对象 pd.Series()

import pandas as pd
s = pd.Series(['读书', '健身', '余闲', '投资'], index=[0, 1, 2, 3])
# pd.Series(data) 创建一个 Series 对象,默认索引是从 0 开始,以 0, 1, 2, 3,… 的形式按序分配给列表中的元素。
print(s)

以上是传入链表来创建 Series 对象,还有传入字典等方式:

data = {'《三国演义》':'罗贯中', '《水浒传》':'施耐庵'}   # 字典
data = 1                                            # 常量
import numpy as np
data = np.array( [1, 2, 3] )                        # n维数组
data = 'hello'                                      # 字符串
s = pd.Series( data )                               # 创建一个 Series 对象

创建一个 DataFrame 对象 pd.DataFrame()

DataFrame 对象是一种表格型的数据结构,包含行索引、列索引以及一组数据。

import pandas as pd
data = [['《三国演义》', '罗贯中'], ['《水浒 传》', '施耐庵']]
df = pd.DataFrame(data, columns=['书籍', '作者'], dtype=float)
print(df)

输出:

      书籍      作者
0  《三国演义》  罗贯中
1  《水浒 传》   施耐庵

行索引:0、1,列索引:书籍、作者,表格里面的是数据。

创建 DataFrame 对象的方法是:pd.DataFrame()


Series 对象和 DataFrame 对象之间的联系就在于:DataFrame 对象可以被看作是由 Series 对象所组成的。

  • series,只是一个一维数据结构,由 index 和 value 组成。
  • dataframe,是一个二维结构,除了拥有 index 和 value 之外,还拥有 column。

df['列索引'] 提取 DataFrame 对象中某一列的数据,其实是一个 Series 对象。

import pandas as pd
data = [['《三国演义》', '罗贯中'], ['《水浒 传》', '施耐庵']]
df = pd.DataFrame(data, columns=['书籍', '作者'], dtype=float)print(df['书籍'])
print(type(df['书籍']))

输出:

Name: 书籍, dtype: object
<class 'pandas.core.series.Series'>

数据清洗

df.info(),显示整体的数据的基本信息,有一个大概的印象。

主要包括:整体数据的总行数、各列数据类型统计、各列的列名、各列总共有多少非空数据、表格占用的系统空间等。


缺失值 NaN

当非空数据与数据总量不一致时,说明这份数据有可能存在缺失值,处理这些缺失值的第一步,就是找到它们。


查找缺失值 isna()

在 pandas 库中,用 isna() 方法来查找 DataFrame、Series 对象中的缺失值。

df.isna() 返回的是 DataFrame 对象,Series.isna() 返回的就是 Series 对象。

返回对象中的内容都是布尔值:

  • 缺失数据会用 True 来表示
  • False 则代表这里的数据不缺失

对 DataFrame 对象使用 df.head() 方法默认可以查看数据的前 5 行,df.tail() 方法则默认可以查看数据的后 5 行。

pandas 库中,NaN 代表的就是缺失数据。

删除缺失值 dropna()

对于缺失值,最简单的方法就是将含有缺失值的行直接删除。

如果总体的数据量比较大,缺失值占总数据量的比重也比较低,将含有缺失值的行删除后并不会妨碍后续的分析。

当然除了删除之外还有其它处理方法,比如给缺失值填充数据。

在 pandas 库中,用 df.dropna() 会删除 DataFrame、Series 对象中有缺失值的行。

如果我们需要针对某几列的缺失数据进行删除,就需要用到 df.dropna() 的 subset 参数。

df.dropna(subset = ['书籍', '作者'])

重复值


查找重复值 df.duplicated()

df.duplicated()方法来查找 DataFrame 对象中的重复数据。

返回一个 Series 对象,找出所有重复值。重复为 True,不重复为 False。


删除重复值 df.drop_duplicates()
df = df.drop_duplicates()

异常值


检查异常值 df.describe()

describe() 方法返回出来的统计信息分别代表数值型数据的频数统计、平均值、标准差、最小值、第一四分位数、中位数、第三四分位数以及最大值。

只需要观察最大最小值、平均数、中位数就好,一般异常值都在特殊位置。

筛选数据 df = [ df[列名] < num ]
# 查看单价小于等于 200 的数据,再重新赋值给就能过滤掉所有单价大于 200 的异常值
df = df[ df['单价'] <= 200 ]

数据整理

数据整理指的是我们在数据分析前对所需字段(表格的列)进行数据排序、数据转换、数据抽取、数据合并、数据计算等准备操作。


转换日期数据 pd.to_datetime()

Python 中有专门储存时间日期的数据类型 —— datetime,我们对日期数据进行操作都需要 TA。

但 Pandas 中的日期数据(如 2021-10-08),日期列数据并不是 datetime 类型,而是 objeect(pandas自定义的字符串类型)。

在 pandas 库中我们可以使用 pd.to_datetime(arg, format) 来将 DataFrame 对象或者 Series 对象的数据类型转换成 datetime 类型。

其中的 arg 参数为我们要转换的数据,它可以是 DataFrame 对象或 Series 对象。

format 参数为 datetime 类型的日期格式,如数据,是以年-月-日的形式出现的,那对应的 format 就是 ‘%Y-%m-%d’。

# 转换日期数据,并设置对应的日期格式
Series = pd.to_datetime(mask_data['日期'], format = '%Y-%m-%d')

将 ‘日期’ 字段转换成 datetime 类型后,我们就可以直接进行增、删、改、查等各种操作。如:

# 提取年份
year_data = Series.dt.year
# 提取月份
month_data = Series.dt.month
# 提取某日
day_data = Series.dt.day

添加新列 df[‘要添加的新列的名字’]

df['月份'] = n

数据写入 df.to_csv(path, encoding, index)

数据整理完了,写入 csv 文件中。

df.to_csv(path, encoding='utf-8')

分组与聚合

分组是指根据一个或多个键将数据拆分为多个组的过程,这里的键可以理解为分组的条件。

聚合指的是任何能够从数组产生标量值的数据转换过程。

分组、聚合操作一般会同时出现,用于计算分组数据的统计值或实现其他功能。

除此之外,不只有单层分组聚合操作,还有多层分组聚合操作。

单层分组聚合操作:

df = df.groupby('班级')['成绩'].mean()

多层分组聚合操作:

df = df.groupby(['班级', '性别'])['成绩'].mean()

pandas 库前置知识相关推荐

  1. 数据分析一、 pandas库基础知识

    pandas库基础知识 一.jupyter 代码编辑器 概述:Python 数据分析库介绍 二.pandas 库基础知识 (1)常用的Series属性与方法: (2) DataFrame常用方法 1. ...

  2. Pandas库常用知识记录

    Pandas主要有两种数据结构,series和dataframe. Series是一种类似于一维数组的对象,它由一组数据(各种NumPy数据类型)以及一组与之相关的数据标签(即索引)组成,即index ...

  3. python数据分析的钥匙——pandas库

    目录 系列文章目录 一. 关于pandas库: 二. pandas库的安装 三. pandas的两种基本数据结构--Series 与 DataFrame(附代码) 四. pandas库的应用(附代码) ...

  4. Pandas库常用函数和操作

    目录 1. DataFrame 处理缺失值  dropna() 2. 根据某维度计算重复的行   duplicated().value_counts() 3. 去重  drop_duplicates( ...

  5. python pandas库——pivot使用心得

    python pandas库--pivot使用心得 2017年12月14日 17:07:06 阅读数:364 最近在做基于python的数据分析工作,引用第三方数据分析库--pandas(versio ...

  6. python中不能使用索引运算的是_Python数据分析之Pandas库(笔记)

    Pandas数据结构 pandas有两个基本的数据结构:Series和DataFrame. 1.1 创建Series数据 需要引入pandas模块:import pandas as pd 需要引入Se ...

  7. python3(四)Pandas库

    数据摘要pandas 目录 1 pandas库 1.1 pandas库 1.2 Series类型 1.3 Series类型的基本操作 1.4 DataFrame类型 1.5 数据类型操作 1.6 数据 ...

  8. python dataframe 新列_Python第二十四课:Pandas库(四)

    Python第二十四课:Pandas库(四)点击上方"蓝字",关注我们. 不知不觉,我们已经跨越了千难万险,从零开始,一步步揭开了Python神秘的面纱.学到至今,回过头,才晓得自 ...

  9. 区块连教程(一):前置知识-linux补充

    区块连教程(一):前置知识-linux补充 区块链教程(二):基础概念介绍 区块链教程(三):Solidity编程基础 区块链教程(四):搭建私链.web3.js基础 区块链教程(五):合约编写实战实 ...

最新文章

  1. java序列化和RMI
  2. php peridot 使用教程,PHP测试框架Peridot-支持BDD
  3. 解决CentOS 6 字体变成方框的方法
  4. Xen Server 7.0 一直无法退出维护模式
  5. Query with 0 value even no record found
  6. Mac下host管理工具
  7. DLL和EXE如何读取包含在自身的资源文件
  8. 计算机博士、加班到凌晨也要化妆、段子手……IT 女神驾到!
  9. 【SEED Labs 2.0】TCP Attacks Lab
  10. Seraph‘s Last Stand(塞拉弗的最后一站)技能翻译
  11. 计算机重启遇到你的账户已被停用,win10系统提示administrator您的账户已被停用的解决方法...
  12. 吕国强计算机二级考试,考试科目代码表.doc
  13. CAS算法-实现原理
  14. 查询用户上次登录时间问题
  15. Aspect Joinpoint Advice Pointcut 区别
  16. yb3防爆电机型号含义_YBK3/YB3/YBX3-160M2-2-15KW防爆电机参数详解
  17. MySQL数据库的查询:常用查询语句、MySQL函数、多表查询、视图表
  18. 熟练掌握 MyBatis-Plus,一篇就够!
  19. 一文看遍全国“十四五”规划
  20. 分布式系统架构的应用

热门文章

  1. 关于模糊控制的理解,这篇文章不错
  2. Github网站css加载不出来的处理方法
  3. 前端特效:Javascript,css animation,GIF,Lottie
  4. php即时聊天数据库设计入门经典教程_用PHP+MySQL搭建聊天室
  5. SQL行列转换6种方法
  6. 【操作系统】IO设备
  7. colormap是MATLAB里面用来设定和获取当前色图的函数。
  8. 计算机配件声卡,什么是声卡?声卡(也叫音频卡)是mpc的必要部件,它是计算机进行 爱问知识人...
  9. 互联网领域天网获客大数据时代到来,
  10. 绝路之后,人人网还有三条去路