python 运用pandas 库处理excel 表格数据

在这里插入图片描述

文章目录

  • 读取文件
  • 查看数据
  • 数据选择
  • 数据筛选
  • 创建新列
  • 计算并总结数据
  • 分组统计

读取文件

Pandas 是一个强大的数据分析库,它提供了丰富的数据结构和数据分析工具,其中之一是用于读取不同格式文件的 read_* 函数系列。以下是一个简单介绍如何使用 Pandas 读取常见文件格式的示例:

  1. 读取 Excel 文件:

    import pandas as pd
    
    # 读取 Excel 文件的第一个表格
    df = pd.read_excel('文件路径.xlsx')
    
    # 打印数据框的前几行
    print(df.head())
    

查看数据

在 Pandas 中,可以使用多种方式来查看 Excel 文件中的 DataFrame 数据以及数据类型。以下是一些常见的方法:

  1. 查看前几行数据(或者后几行):

    使用 head() 函数可以查看 DataFrame 的前几行数据,默认是前五行。你可以通过传递参数来指定显示的行数。

    import pandas as pd
    
    # 读取 Excel 文件
    df = pd.read_excel('文件路径.xlsx')
    
    # 查看前五行数据
    print(df.head(5))
    # 查看后5行
    print(df.tail(5))
    
    
  2. 查看数据类型:

    使用 dtypes 属性可以查看 DataFrame 中每一列的数据类型。

    # 查看数据类型
    print(df.dtypes)
    
  3. 查看统计摘要:

    使用 describe() 函数可以生成关于数值列的统计摘要,包括均值、标准差、最小值、25%,50%,75% 以及最大值。

    # 查看统计摘要
    print(df.describe())
    
  4. 查看单一列的唯一值:

    如果想了解某一列的唯一值,可以使用 unique() 函数。

    # 查看某一列的唯一值
    unique_values = df['列名'].unique()
    print(unique_values)
    
  5. 查看整个 DataFrame 的信息:

    使用 info() 函数可以查看 DataFrame 的整体信息,包括每列的非空值数量、数据类型等。

    # 查看整个 DataFrame 的信息
    print(df.info())
    

这些方法可以帮助你快速了解 Excel 文件中的数据,其结构以及数据类型。根据需要,选择适当的方法来查看和理解数据。

数据选择

当选择 DataFrame 中的数据时,下面是每个用法的简单例子:

  1. 选择列:

    # 创建一个简单的 DataFrame
    import pandas as pd
    
    data = {'Name': ['Alice', 'Bob', 'Charlie'],
            'Age': [25, 30, 35],
            'City': ['New York', 'San Francisco', 'Los Angeles']}
    
    df = pd.DataFrame(data)
    
    # 通过列名选择单列
    single_column = df['Name']
    
  2. 选择多列:

    # 选择多列
    multiple_columns = df[['Name', 'Age']]
    
  3. 选择行:

    # 通过标签索引选择单行
    single_row_by_label = df.loc[0]
    
    # 通过整数索引选择单行
    single_row_by_integer = df.iloc[0]
    
  4. 选择特定条件的行:

    # 选择满足条件的行
    selected_rows = df[df['Age'] > 25]
    
  5. 组合选择:

    # 组合条件选择
    selected_data = df[(df['Age'] > 25) & (df['City'] == 'San Francisco')]
    
  6. 选择特定位置的元素:

    # 通过标签索引选择元素
    element_by_label = df.at[0, 'Name']
    
    # 通过整数索引选择元素
    element_by_integer = df.iat[0, 0]
    

这些例子演示了如何使用 Pandas 对 DataFrame 进行简单的数据选择。你可以根据具体的数据和需求,灵活运用这些方法。

数据筛选

在 Pandas 中,数据筛选是通过选择满足特定条件的行或列来进行的。以下是一些常见的数据筛选用法:

  1. 根据条件筛选行:

    通过设定条件来选择 DataFrame 中满足条件的行。

    # 创建一个简单的 DataFrame
    import pandas as pd
    
    data = {'Name': ['Alice', 'Bob', 'Charlie'],
            'Age': [25, 30, 35],
            'City': ['New York', 'San Francisco', 'Los Angeles']}
    
    df = pd.DataFrame(data)
    
    # 选择年龄大于 30 的行
    filtered_rows = df[df['Age'] > 30]
    
  2. 使用 isin 方法筛选行:

    使用 isin 方法可以选择某一列中包含特定值的行。

    # 选择居住在指定城市的行
    selected_cities = df[df['City'].isin(['New York', 'Los Angeles'])]
    
  3. 根据多个条件组合筛选行:

    使用逻辑运算符 &(与)、|(或)、~(非)等来组合多个条件。

    # 选择年龄大于 25 且居住在 'San Francisco' 的行
    selected_data = df[(df['Age'] > 25) & (df['City'] == 'San Francisco')]
    
  4. 根据字符串条件筛选行:

    使用字符串方法,如 str.contains,可以在文本列中筛选包含特定字符串的行。

    # 选择包含 'Bob' 的行
    selected_rows = df[df['Name'].str.contains('Bob')]
    
  5. 根据索引标签筛选行:

    使用 loc 方法根据索引标签筛选行。

    # 设置 'Name' 列为索引列
    df.set_index('Name', inplace=True)
    
    # 选择 'Bob' 的行
    selected_row = df.loc['Bob']
    
  6. 根据列值筛选列:

    使用列名来选择特定的列。

    # 选择 'Name' 和 'Age' 列
    selected_columns = df[['Name', 'Age']]
    

这些例子展示了在 Pandas 中进行数据筛选的常见用法。你可以根据实际情况和需求,使用这些方法进行灵活的数据筛选。

创建新列

在 Pandas 中,创建新列可以通过给 DataFrame 分配新的列名,并使用已有列的数据或进行一些计算得到新的列值。以下是一些常见的创建新列的方法:

  1. 使用已有列进行计算创建新列:

    # 创建一个简单的 DataFrame
    import pandas as pd
    
    data = {'Name': ['Alice', 'Bob', 'Charlie'],
            'Age': [25, 30, 35],
            'City': ['New York', 'San Francisco', 'Los Angeles']}
    
    df = pd.DataFrame(data)
    
    # 使用已有列 'Age' 创建一个新列 'Age_in_2_years'
    df['Age_in_2_years'] = df['Age'] + 2
    
  2. 使用函数进行计算创建新列:

    可以使用函数对 DataFrame 的一列进行操作,并将结果存储在新列中。

    # 创建一个函数,用于计算字符串长度
    def calculate_name_length(name):
        return len(name)
    
    # 使用函数创建新列 'Name_Length'
    df['Name_Length'] = df['Name'].apply(calculate_name_length)
    
  3. 使用条件语句创建新列:

    可以使用条件语句根据某一列的值创建新的列。

    # 使用条件语句创建新列 'Is_Adult'
    df['Is_Adult'] = df['Age'] >= 18
    
  4. 根据多列创建新列:

    使用多个已有列的数据进行计算,并创建新的列。

    # 使用 'Age' 和 'Name_Length' 列创建新列 'Combined_Column'
    df['Combined_Column'] = df['Age'] * df['Name_Length']
    
  5. 使用 assign 方法创建新列:

    使用 assign 方法可以链式操作,一次性创建多个新列。

    # 使用 assign 方法创建多个新列
    df = df.assign(Double_Age=df['Age'] * 2, Triple_Age=df['Age'] * 3)
    

这些方法提供了多种灵活的方式来创建新列,根据你的需求选择适当的方法。创建新列时,考虑数据的来源、计算逻辑以及新列的名称。

计算并总结数据

在 Pandas 中,可以使用一些内建的函数来计算总结数据,包括均值、中位数、标准差等。以下是一些常见的计算总结数据的方法:

  1. 计算列的均值:

    # 计算 'Age' 列的均值
    mean_age = df['Age'].mean()
    
  2. 计算列的中位数:

    # 计算 'Age' 列的中位数
    median_age = df['Age'].median()
    
  3. 计算列的标准差:

    # 计算 'Age' 列的标准差
    std_dev_age = df['Age'].std()
    
  4. 计算列的总和:

    # 计算 'Age' 列的总和
    sum_age = df['Age'].sum()
    
  5. 计算列的最小值和最大值:

    # 计算 'Age' 列的最小值和最大值
    min_age = df['Age'].min()
    max_age = df['Age'].max()
    
  6. 使用 describe 方法获取统计摘要:

    # 使用 describe 方法获取数值列的统计摘要
    summary_stats = df.describe()
    
  7. 计算唯一值的数量:

    # 计算 'City' 列中唯一值的数量
    unique_cities_count = df['City'].nunique()
    
  8. 计算唯一值及其出现次数:

    # 计算 'City' 列中每个唯一值的出现次数
    city_counts = df['City'].value_counts()
    

这些方法提供了对数据集进行各种总结统计的途径。具体选择哪种方法取决于你关心的统计信息。可以根据实际需求选择适当的函数进行计算。

分组统计

在 Pandas 中,分组统计是一种强大的数据分析工具,允许你根据某一列或多列的值对数据进行分组,然后对每个组进行统计。以下是一些常见的分组统计的方法:

  1. 按单一列分组并计算统计量:

    # 创建一个简单的 DataFrame
    import pandas as pd
    
    data = {'Category': ['A', 'B', 'A', 'B', 'A', 'B'],
            'Value': [10, 20, 30, 15, 25, 18]}
    
    df = pd.DataFrame(data)
    
    # 按 'Category' 列分组,并计算每组的均值
    group_means = df.groupby('Category')['Value'].mean()
    
  2. 按多列分组并计算统计量:

    # 创建一个带有多列的 DataFrame
    data = {'Category': ['A', 'B', 'A', 'B', 'A', 'B'],
            'City': ['X', 'Y', 'X', 'Y', 'X', 'Y'],
            'Value': [10, 20, 30, 15, 25, 18]}
    
    df = pd.DataFrame(data)
    
    # 按 'Category' 和 'City' 列分组,并计算每组的均值
    group_means = df.groupby(['Category', 'City'])['Value'].mean()
    
  3. 同时计算多个统计量:

    # 同时计算均值和标准差
    group_stats = df.groupby('Category')['Value'].agg(['mean', 'std'])
    
  4. 使用 agg 方法应用多个函数:

    # 使用 agg 方法应用不同的统计函数
    custom_stats = df.groupby('Category')['Value'].agg(['sum', 'mean', 'count'])
    
  5. 使用 apply 方法应用自定义函数:

    # 使用 apply 方法应用自定义函数
    def custom_function(group):
        return group.max() - group.min()
    
    custom_result = df.groupby('Category')['Value'].apply(custom_function)
    
  6. 透视表(Pivot Table):

    # 使用透视表计算 'City' 列和 'Category' 列的均值
    pivot_table = df.pivot_table(values='Value', index='Category', columns='City', aggfunc='mean')
    

这些方法提供了丰富的分组统计功能,可以根据不同的需求进行定制化。分组统计对于理解数据的分布、进行对比分析等方面都非常有用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/214569.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

HDMI之数据岛

概述 发送端在发送视频信号之前,将多媒体信息通过数据岛传输给接收端。接收端通过数据岛信息获取当前分辨率(VIC),编码信息(RGB/YCR等),色彩空间,位深等等。然后对应将视频信息解码。与此同时,多余的带宽用于传输音频信息等。本文通过具体的包信息(从实验室仪器拍照…

3.5.6 轮询访问介质访问控制

目录 介质访问控制轮询协议令牌传递协议 介质访问控制 信道划分介质访问控制(MAC Multiple Access Control)协议: 基于多路复用技术划分资源网络负载重:共享信道效率高,且公平网络负载轻:共享信道利用率低…

常微分方程组的数值解法(C++)

常微分方程组的数值解法是一种数学方法, 用于求解一组多元的常微分方程(Ordinary Differential Equations, ODEs). 常微分方程组通常描述了多个变量随时间或其他独立变量的演化方式, 这些方程是自然界和工程问题中的常见数学建模工具. 解这些方程组的确切解通常难以找到, 因此需…

WordPress外贸站优化工具,WordPress外贸SEO优化方法

WordPress外贸站是跨国企业拓展市场、提升品牌知名度的理想选择。然而,如何通过SEO优化、原创文章生成以及留心站点优化的事项,成为众多站长关注的焦点。 SEO,即搜索引擎优化,是提高网站在搜索引擎结果中排名的关键。首先&#x…

Linux——基本指令(一)

写在前面: 我们云服务器搭建的Linux系统,使用的镜像版本CentOS 7.6,使用的Xshell远程连接云服务器 前面我们使用超级管理员root账号登录,一般我们使用普通用户登录,那么如何创建新用户呢? 1.创建新用户 &#xff08…

jsp 管理员登录界面与登录验证

验证分两种情况 &#xff0c;成功&#xff0c;进入管理员页&#xff0c;可以看信息和删记录 失败&#xff0c;直接给出登录失败&#xff0c;然后重新登录 login.jsp <% page language"java" contentType"text/html; charsetUTF-8"pageEncoding"UTF…

图片处理OpenCV IMDecode模式说明【生产问题处理】

OpenCV IMDecode模式说明【生产问题处理】 1 前言 今天售后同事反馈说客户使用我们的图片处理&#xff0c;将PNG图片处理为JPG图片之后&#xff0c;变为了白板。 我们图片处理使用的是openCV来进行处理 2 分析 2.1 图片是否损坏&#xff1a;非标准PNG头部 于是&#xff0c;马…

Matter学习笔记(3)——交互模型

一、简介 1.1 交互方式 交互模型层定义了客户端和服务器设备之间可以执行哪些交互。发起交互的节点称为发起者&#xff08;通常为客户端设备&#xff09;&#xff0c;作为交互的接收者的节点称为目标&#xff08;通常为服务器设备&#xff09;。 节点通过以下方式进行交互&a…

音频处理关键知识点

1 引言 现实生活中&#xff0c;我们听到的声音都是时间连续的&#xff0c;我们称为这种信号叫模拟信号。模拟信号需要进行数字化以后才能在计算机中使用。 目前我们在计算机上进行音频播放都需要依赖于音频文件。音频文件的生成过程是将声音信息采样、量化和编码产生的数字信号…

Pandas实战:电商平台用户分析

数据分析 1.行为概况 首先&#xff0c;我们要对用户的行为类型有一定的理解&#xff0c;了解每个行为所代表的含义。 浏览&#xff1a;作为用户与商品接触的第一个行为&#xff0c;它的数量级与其他行为类型相比而言是非常庞大的&#xff0c;因为&#xff1a; 用户购买之前需…

Linux系统配置深度学习环境之cudnn安装

前言 一个针对深度学习应用优化的 GPU 加速库。它提供了高性能、高可靠性的加速算法&#xff0c;旨在加速深度神经网络模型的训练和推理过程。 cuDNN 提供了一系列优化的基本算法和函数&#xff0c;包括卷积、池化、规范化、激活函数等&#xff0c;以及针对深度学习任务的高级功…

❀My学习Linux命令小记录(6)❀

目录 ❀My学习Linux命令小记录&#xff08;6&#xff09;❀ 26.ps指令 27.grep指令 28.awk指令 29.sed指令 30.wc指令 ❀My学习Linux命令小记录&#xff08;6&#xff09;❀ 26.ps指令 功能说明&#xff1a;报告当前系统的进程状态。 (ps.ps命令 用于报告当前系统的进…

小程序SSL证书

小程序通常需要与服务器进行数据交互&#xff0c;包括用户的登录信息、支付数据等。在没有安全保障的情况下&#xff0c;这些敏感数据容易受到黑客攻击&#xff0c;导致信息泄露和用户隐私的严重问题。因此&#xff0c;确保小程序中的通信安全势在必行。 SSL证书在小程序中扮演…

GEE:使用Roberts算子卷积核进行图像卷积操作

作者:CSDN @ _养乐多_ 本文将深入探讨边缘检测中的一个经典算法,即Roberts算子卷积。我们将介绍该算法的基本原理,并演示如何在Google Earth Engine中应用Roberts算子进行图像卷积操作。并以试验区NDVI为例子,研究区真彩色影像、NDVI图像以及卷积结果如下所示, 文章目录 …

通义灵码简单使用例子

首先我们需要了解到通义灵码的能力&#xff1a; 行/函数级实时续写&#xff1a; 当我们在 idea进行代码编写时(确认开启了自动云端生成的模式)&#xff0c;通义灵码会根据当前代码文件及相关代码文件的上下文&#xff0c;自动为你生成代码建议。你可以不用&#xff0c;也可以t…

凯捷对汽车数字化的思考

标题凯捷&#xff08;中国&#xff09;对汽车行业数字化转型的探索 凯捷中国数字化研发团队有超过1200名专业顾问致力于数字化相关项目&#xff0c;分布在北京、天津、沈阳、呼和浩特、上海、昆山、杭州、广州、深圳等地&#xff0c;运用Rightshore交付模式和通过专业顾问为客…

设计模式-结构型模式之装饰者设计模式

文章目录 六、装饰者模式 六、装饰者模式 装饰者模式&#xff08;Decorator Pattern&#xff09;允许向一个现有的对象添加新的功能&#xff0c;同时又不改变其结构。它是作为现有的类的一个包装。 装饰类和被装饰类可以独立发展&#xff0c;不会相互耦合&#xff0c;装饰者模…

SpringIOC第二课,@Bean用法,DI详解,常见面试题Autowired VS Resource

一、回顾 但是我们之前MVC时候&#xff0c;在页面上&#xff0c;为什只用Controller,不用其他的呢&#xff1f; 用其他的好使吗&#xff1f;(我们可以在这里看到&#xff0c;出现404的字样&#xff09; Service ResponseBody public class TestController {RequestMapping(&quo…

Apache Doris 详细教程(三)

7、监控和报警 Doris 可以使用 Prometheus 和 Grafana 进行监控和采集&#xff0c;官网下载最新版即可。 Prometheus 官网下载&#xff1a;https://prometheus.io/download/ Grafana 官网下载&#xff1a;https://grafana.com/grafana/download Doris 的监控数据通过 FE 和…

外卖平台推荐算法的优化与实践

目录 引言 一、推荐算法的原理 二、推荐算法的挑战 三、实际案例分析 四、优化推荐算法的策略 五、结论 引言 在当今数字化社会&#xff0c;外卖平台成为了人们生活中不可或缺的一部分。为了提供更加个性化、高效的服务&#xff0c;外卖平台使用推荐算法成为了一项关键技…
最新文章