Python 使用pandas 进行查询和统计详解

简介: 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')

完结

相关文章
|
11月前
|
Java 数据处理 索引
(Pandas)Python做数据处理必选框架之一!(二):附带案例分析;刨析DataFrame结构和其属性;学会访问具体元素;判断元素是否存在;元素求和、求标准值、方差、去重、删除、排序...
DataFrame结构 每一列都属于Series类型,不同列之间数据类型可以不一样,但同一列的值类型必须一致。 DataFrame拥有一个总的 idx记录列,该列记录了每一行的索引 在DataFrame中,若列之间的元素个数不匹配,且使用Series填充时,在DataFrame里空值会显示为NaN;当列之间元素个数不匹配,并且不使用Series填充,会报错。在指定了index 属性显示情况下,会按照index的位置进行排序,默认是 [0,1,2,3,...] 从0索引开始正序排序行。
772 0
|
11月前
|
Java 数据挖掘 数据处理
(Pandas)Python做数据处理必选框架之一!(一):介绍Pandas中的两个数据结构;刨析Series:如何访问数据;数据去重、取众数、总和、标准差、方差、平均值等;判断缺失值、获取索引...
Pandas 是一个开源的数据分析和数据处理库,它是基于 Python 编程语言的。 Pandas 提供了易于使用的数据结构和数据分析工具,特别适用于处理结构化数据,如表格型数据(类似于Excel表格)。 Pandas 是数据科学和分析领域中常用的工具之一,它使得用户能够轻松地从各种数据源中导入数据,并对数据进行高效的操作和分析。 Pandas 主要引入了两种新的数据结构:Series 和 DataFrame。
824 0
|
Python
掌握Python装饰器:轻松统计函数执行时间
掌握Python装饰器:轻松统计函数执行时间
721 76
|
存储 小程序 Python
农历节日倒计时:基于Python的公历与农历日期转换及节日查询小程序
### 农历节日倒计时:基于Python的公历与农历日期转换及节日查询小程序 该程序通过`lunardate`库实现公历与农历的日期转换,支持闰月和跨年处理,用户输入农历节日名称后,可准确计算距离该节日还有多少天。功能包括农历节日查询、倒计时计算等。欢迎使用! (239字符)
1463 86
|
存储 数据采集 数据处理
Pandas与NumPy:Python数据处理的双剑合璧
Pandas与NumPy是Python数据科学的核心工具。NumPy以高效的多维数组支持数值计算,适用于大规模矩阵运算;Pandas则提供灵活的DataFrame结构,擅长处理表格型数据与缺失值。二者在性能与功能上各具优势,协同构建现代数据分析的技术基石。
932 0
|
数据库 Python
【YashanDB知识库】python驱动查询gbk字符集崖山数据库CLOB字段,数据被驱动截断
【YashanDB知识库】python驱动查询gbk字符集崖山数据库CLOB字段,数据被驱动截断
|
Python
python pandas学习(一)
该代码段展示了四个主要操作:1) 删除指定列名,如商品id;2) 使用正则表达式模糊匹配并删除列,例如匹配订单商品名称1的列;3) 将毫秒级时间戳转换为带有时区调整的日期时间格式,并增加8小时以适应本地时区;4) 将列表转换为DataFrame后保存为Excel文件,文件路径和名称根据变量拼接而成。
316 3
|
存储 数据挖掘 数据处理
Python Pandas入门:行与列快速上手与优化技巧
Pandas是Python中强大的数据分析库,广泛应用于数据科学和数据分析领域。本文为初学者介绍Pandas的基本操作,包括安装、创建DataFrame、行与列的操作及优化技巧。通过实例讲解如何选择、添加、删除行与列,并提供链式操作、向量化处理、索引优化等高效使用Pandas的建议,帮助用户在实际工作中更便捷地处理数据。
634 2
|
数据采集 数据可视化 数据处理
Python数据科学:Pandas库入门与实践
Python数据科学:Pandas库入门与实践
|
数据采集 数据可视化 数据挖掘
Python数据分析:Pandas库实战指南
Python数据分析:Pandas库实战指南

推荐镜像

更多