Python 使用pandas实现查询和统计示例详解

 更新时间:2023年08月20日 09:03:20   作者:全栈若城  
这篇文章主要为大家介绍了Python 使用pandas实现查询和统计示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

前言

在使用 Pandas 进行数据分析时,我们需要经常进行查询和统计分析。

但是Pandas 是如何进行查询和统计分析得嘞, let's go :

数据筛选查询

通过列名索引筛选数据:

import pandas as pd

data = {'name': ['Tom', 'Jerry', 'Lucy', 'Amy'],
      'age': [18, 19, 20, 21],
      'gender': ['M', 'M', 'F', 'F']}
df = pd.DataFrame(data)
# 选取 'name' 属性
df['name']
# 选取 'age' 和 'gender' 属性
df[['age', 'gender']]

通过位置索引筛选数据:

# 通过位置索引选取第一行数据
df.iloc[0]
# 通过位置索引选取第一行和第二行数据
df.iloc[0:2]

通过布尔索引筛选数据:

# 选取年龄大于等于 20 的记录
df[df['age'] >= 20]
# 选取性别为女的记录
df[df['gender'] == 'F']

数据统计分析

Pandas 提供丰富的统计函数,可以方便地进行数据分析。

描述性统计分析:

# 统计数值型数据的基本描述性统计信息
df.describe()
# 统计各属性的非空值数量
df.count()
# 统计各属性的平均值
df.mean()
# 统计各属性的方差
df.var()
# 统计各属性的标准差
df.std()

分组统计分析:

# 按照性别分组,统计年龄均值
df.groupby('gender')['age'].mean()
# 按照性别和年龄分组,统计人数
df.groupby(['gender', 'age'])['name'].count()

交叉表分析:

# 构造一个交叉表,统计不同性别和年龄的人数
pd.crosstab(df['gender'], df['age'])

数据排序

按照某列数据进行升序排列:

df.sort_values(by='age')

按照某列数据进行降序排列:

df.sort_values(by='age', ascending=False)

数据聚合

对整个 DataFrame 进行聚合操作:

# 聚合函数:求和、均值、中位数、最大值、最小值
df.aggregate([sum, 'mean', 'median', max, min])

对某列数据进行聚合操作:

# 统计年龄平均值
df['age'].mean()
# 统计年龄总和
df['age'].sum()
# 统计年龄最大值
df['age'].max()

处理缺失数据

判断数据是否为缺失值:

# 返回一个布尔型 DataFrame,表明各元素是否为缺失值
df.isnull()

删除缺失值所在的行或列:

# 删除所有含有缺失值的行
df.dropna()
# 删除所有含有缺失值的列
df.dropna(axis=1)

用指定值填充缺失值:

# 将缺失值使用 0 填充
df.fillna(0)

数据去重

对 DataFrame 去重:

# 根据所有列值的重复性进行去重
df.drop_duplicates()
# 根据指定列值的重复性进行去重
df.drop_duplicates(subset=['name', 'age'])

对 Series 去重:

# 对 'name' 列进行去重
df['name'].drop_duplicates()

数据合并

横向(按列)合并 DataFrame:

# 创建一个新的 DataFrame
other_data = {'name': ['Tom', 'Jerry', 'Lucy', 'Amy'],
            'score': [80, 90, 85, 95]}
other_df = pd.DataFrame(other_data)
# 将两个 DataFrame 在列上合并
pd.concat([df, other_df], axis=1)

纵向(按行)合并 DataFrame:

# 创建一个新的 DataFrame
other_data = {'name': ['Kate', 'Jack'],
            'age': [19, 20],
            'gender': ['F', 'M']}
other_df = pd.DataFrame(other_data)
# 将两个 DataFrame 在行上合并
pd.concat([df, other_df], axis=0)

数据透视表

创建数据透视表:

# 统计不同性别和年龄的人数,以 'gender' 为行、'age' 为列,'name' 计数
pd.pivot_table(df, values='name', index='gender', columns='age', aggfunc='count')

以上就是Python 使用pandas实现查询和统计示例详解的详细内容,更多关于Python pandas查询统计的资料请关注脚本之家其它相关文章!

相关文章

  • python类名和类方法cls修改类变量的值

    python类名和类方法cls修改类变量的值

    这篇文章主要介绍了python类名和类方法cls修改类变量的值,通过类对象是无法修改类变量的值的,本质其实是给类对象新添加 name 和 age 变量,下文更多的相关介绍需要的小伙伴可任意参考一下
    2022-04-04
  • 如何使用python传入不确定个数参数

    如何使用python传入不确定个数参数

    这篇文章主要介绍了如何使用python传入不确定个数参数,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • 基于Python+Pygame实现变异狗大战游戏

    基于Python+Pygame实现变异狗大战游戏

    只有你想不到,没有我找不到写不了的好游戏!这篇文章就来和大家分享一下如何基于Python+Pygame实现变异狗大战游戏,感兴趣的可以了解一下
    2023-03-03
  • python实现批量修改图片格式和尺寸

    python实现批量修改图片格式和尺寸

    这篇文章主要为大家详细介绍了python实现批量修改图片格式和尺寸的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-06-06
  • 如何基于Python实现数字类型转换

    如何基于Python实现数字类型转换

    这篇文章主要介绍了如何基于Python实现数字类型转换,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • 两个命令把 Vim 打造成 Python IDE的方法

    两个命令把 Vim 打造成 Python IDE的方法

    这篇文章主要介绍了两个命令把 Vim 打造成 Python IDE,需要的朋友可以参考下
    2016-03-03
  • Python中获取对象信息的方法

    Python中获取对象信息的方法

    这篇文章主要介绍了Python中获取对象信息的方法,是Python学习当中的基础知识,需要的朋友可以参考下
    2015-04-04
  • scrapy框架中的items文件夹的用法详解

    scrapy框架中的items文件夹的用法详解

    这篇文章主要介绍了scrapy框架中的items文件夹的用法详解,在Scrapy框架中,items文件夹是用来存放定义数据模型的Item类的地方,Item类描述了要从网页中提取的数据的结构和字段,通过使用Item类,我们可以更方便地组织和处理爬取到的数据,需要的朋友可以参考下
    2023-10-10
  • python实现图片,视频人脸识别(opencv版)

    python实现图片,视频人脸识别(opencv版)

    这篇文章主要介绍了python实现图像,视频人脸识别(opencv版)的的相关资料,帮助大家更好的理解和学习python,感兴趣的朋友可以了解下
    2020-11-11
  • python3.x zip用法小结

    python3.x zip用法小结

    这篇文章主要介绍了python3.x zip用法详解,通过一个简单例子给大家详细讲解zip使用,结合示例代码给大家介绍的非常详细,需要的朋友可以参考下
    2022-11-11

最新评论