【Python】Pandas常用基础使用案例


落花雨
你飘摇的美丽
花香氤
把往日情勾起
我愿意
化浮萍躺湖心
只陪你
泛岁月的涟漪
                     🎵 许嵩《山水之间》


Pandas是一个强大的Python数据分析工具库,它极大地简化了数据处理和分析的过程。无论你是数据科学初学者还是经验丰富的分析师,了解Pandas的基本用法都是提高工作效率的关键。本篇博客将介绍Pandas的几个核心概念和常用功能。

什么是Pandas?

Pandas是一个开源的Python库,提供了高性能的、易于使用的数据结构和数据分析工具。最核心的数据结构是DataFrame,它是一种表格型的数据结构,可以看作是一个二维数组,但是与数组不同,它可以处理不同类型的数据。

安装和导入

要使用Pandas,首先需要确保它已经安装在你的环境中。安装很简单,只需要运行以下命令:

pip install pandas

安装完成后,你可以在Python脚本或交互式环境中导入Pandas:

import pandas as pd

创建和读取数据

你可以从多种数据源中读取数据到DataFrame中,例如CSV文件、Excel文件、SQL查询结果等。

# 从CSV文件读取数据
df = pd.read_csv('data.csv')

# 从Excel文件读取数据
df = pd.read_excel('data.xlsx')

# 查看前几行数据
print(df.head())

也可以手动创建DataFrame:

data = {'Name': ['John', 'Anna', 'Peter', 'Linda'],
        'Age': [28, 22, 34, 29],
        'City': ['New York', 'Paris', 'Berlin', 'London']}

df = pd.DataFrame(data)

数据探索

一旦你有了一个DataFrame,你可以使用多种方法来探索和检查数据:

# 查看数据维度
print(df.shape)

# 获取列名
print(df.columns)

# 数据统计概览
print(df.describe())

# 查看单列数据类型
print(df['Age'].dtype)

数据选择和过滤

Pandas提供了灵活的方法来选择和过滤数据:

# 选择一列
ages = df['Age']

# 选择多列
sub_df = df[['Name', 'City']]

# 基于条件过滤
older_than_30 = df[df['Age'] > 30]
# 使用loc和iloc选择数据
# loc是基于标签的选择,iloc是基于整数位置的选择
row = df.loc[0]  # 选择第一行
row = df.iloc[0]  # 同上

数据清洗

数据清洗是数据分析中一个重要的步骤。Pandas提供了许多功能来处理缺失值、重复值、字符串操作等。

# 处理缺失值
df.dropna()  # 删除含有缺失值的行
df.fillna(0)  # 用0填充缺失值

# 删除重复值
df.drop_duplicates()

# 字符串操作
df['Name'] = df['Name'].str.upper()  # 将Name列的字符串转换为大写

数据整理

Pandas能够帮助你整理数据以便于分析:

# 新增列
df['Senior'] = df['Age'] > 60

# 分组聚合
grouped = df.groupby('City')
print(grouped.mean())

# 数据透视表
pivot = pd.pivot_table(df, values='Age', index='City', aggfunc='mean')
print(pivot)
数据合并
你可能需要将来自不同数据源的数据合并在一起:

python
Copy code
# 合并数据框
other_data = {'Name': ['Sara', 'Tom'],
              'Age': [25, 35],
              'City': ['Rome', 'Madrid']}

other_df = pd.DataFrame(other_data)
combined_df = pd.concat([df, other_df])

# 数据连接
df1 = pd.DataFrame({'Key': ['A', 'B', 'C'], 'Value': [1, 2, 3]})
df2 = pd.DataFrame({'Key': ['B', 'C', 'D'], 'Value': [4, 5, 6]})
joined_df = pd.merge(df1, df2, on='Key')

输出数据

最后,你可能需要将处理好的数据输出到文件,以供进一步分析或报告。

# 写入到CSV文件
df.to_csv('processed_data.csv')

# 写入到Excel文件
df.to_excel('processed_data.xlsx')

结语

通过上述内容的介绍,我们了解到Pandas是一个非常强大的库,它能够帮助我们以非常高效的方式来处理和分析数据。上手Pandas并不难,但要真正掌握它,则需要不断地实践和探索。

希望这篇博客能够帮助你开始使用Pandas进行数据分析,并激发你探索更多高级功能的兴趣。Happy Data Analyzing!

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

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

相关文章

代码随想录算法训练营DAY28(记录)|C++回溯算法Part.5|491.递增子序列、46.全排列、47.全排列II

文章目录 491.递增子序列思路伪代码CPP代码优化代码 46.全排列思路伪代码CPP代码 47.全排列IICPP代码 491.递增子序列 力扣题目链接 文章链接:491.递增子序列 视频连接:回溯算法精讲,树层去重与树枝去重 | LeetCode:491.递增子序列…

安装GPT 学术优化 (GPT Academic)@FreeBSD

GPT 学术优化 (GPT Academic)是一个非常棒的项目 可以帮助我们完成中科院的一些日常工作。 官网:GitHub - binary-husky/gpt_academic: 为GPT/GLM等LLM大语言模型提供实用化交互接口,特别优化论文阅读/润色/写作体验,模块化设计,…

win2022服务器apache配置https(ssl)真实环境实验(避坑之作)不依赖宝塔小皮等集成环境

本次实验背景: 完全参考官方 https://cloud.tencent.com/document/product/400/4143 文档流程,没有搞定,于是写下避坑之作。 服务器:腾讯云轻量应用服务器 操作系统: Windows Server 2022 DataCenter 64bit CN apache…

51-41 Stable Video Diffusion,高质量视频生成新时代

23年11月,Stability AI公司公开了稳定视频扩散模型Stable Video Diffusion(SVD)的代码和权重,视频生成迎来了新时代。SVD是一种潜在扩散模型,支持文本生成视频、图像生成视频以及物体多视角3D合成。从工程角度来看,本文主要提出了…

C++如何使用string类

文章目录 为什么要学习string?库中的string关于编码ASCII编码Unicode编码 迭代器Iteratorsstring常用构造接口接口声明与功能说明接口演示 string类对象的容量操作接口声明与功能说明接口演示reverse与resize在不同平台下的扩容与缩容机制 string类对象的访问及遍历操作接口声…

Java项目实现图形验证码(Hutool)

项目架构: 使用SpringCloudmysqlmybatis-plus需要将数据库中的数据导出到Excel文件中 前端为Vue2 业务场景: 登录时使用验证码登录 1.1 打开hutool, 搜索 图片验证码 1.2后端编写生产验证码方法 1.3前端 1.3.1展示验证码 1.3.2 前端方法 1.3.2.1UU…

Django中的数据库优化与ORM性能调优【第169篇—ORM性能调优】

👽发现宝藏 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【点击进入巨牛的人工智能学习网站】。 Django中的数据库优化与ORM性能调优 在开发基于Django的Web应用程序时,数据库是…

ubuntu 查询mysql的用户名和密码 ubuntu查看username

ubuntu 查询mysql的用户名和密码 ubuntu查看username 文章标签mysqlUbuntu用户名文章分类MySQL数据库 一.基本命令 1.查看Ubuntu版本 $ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 16.04.5 LTS Release: 16.04 Coden…

leetcode-分割链表

题目 面试题 02.04. 分割链表 提示 给你一个链表的头节点 head 和一个特定值 x ,请你对链表进行分隔,使得所有 小于 x 的节点都出现在 大于或等于 x 的节点之前。 你不需要 保留 每个分区中各节点的初始相对位置。 示例 1: 输入&#xff…

linux-centos虚拟机设置固定ip

环境准备 虚拟机版本:centos7 安装环境:vmware17 1、设置网络连接 虚拟机-设置-网络适配器-NAT模式 2、查看子网信息 编辑-虚拟网络编辑器-NAT模式-NAT设置 查看子网ip和网关ip 下一步要用 3、修改配置文件 vim /etc/sysconfig/network-scripts…

BGP边界网关路由实验(华为)

一,技术简介 BGP(边界网关路由协议)是一种自治系统(AS)间的协议,主要用于在不同的AS之间交换路由信息。AS是一个由一组网络设备和路由器组成的网络集合,这些设备可以在一个共同的管理域中协同工…

Netty-NioServerSocketChannel与NioSocketChannel

NioServerSocketChannel NioServerSocketChannel是netty服务端的channel。在ServerbootStrap的bind方法中,通过反射,实例化对象NioServerSocketChannel。   NioServerSocketChannel对象实例化的过程中。 AbstractChannel中实例化channel的id&#xff…

【QT进阶】Qt Web混合编程之QWebEngineView基本用法

往期回顾 【QT入门】Qt自定义控件与样式设计之自定义QTabWidget实现tab在左,文本水平的效果-CSDN博客【QT进阶】Qt Web混合编程之CEF、QCefView简单介绍-CSDN博客 【QT进阶】Qt Web混合编程之VS2019 CEF的编译与使用-CSDN博客 【QT进阶】Qt Web混合编程之QWebEngi…

通过Idea部署Tomcat服务器

1.在idea中创建项目 有maven构建工具就创建maven,没有就正常创建一个普通的java程序 创建普通java项目 2.添加框架 3.配置 Tomcat 注意:创建web项目后我们需要配置tomcat才能运行,下面我们来进行配置。 4.添加部署 回到服务器 5.完善配置 6…

EFK环境搭建(基于K8S环境部署)

目录 一.环境信息二.安装nfs供应商三.安装elasticsearch四.安装kibana组件五.安装fluentd 一.环境信息 1.服务器及k8s版本 IP地址主机名称角色版本192.168.40.180master1master节点1.27192.168.40.181node1node1节点1.27192.168.40.182node2node2节点1.27 2.部署组件版本 序…

Python 数据结构和算法实用指南(二)

原文:zh.annas-archive.org/md5/66ae3d5970b9b38c5ad770b42fec806d 译者:飞龙 协议:CC BY-NC-SA 4.0 第四章:列表和指针结构 我们已经在 Python 中讨论了列表,它们方便而强大。通常情况下,我们使用 Python…

近端安全互联样例使用指导

样例介绍 本样例基于rk3568开发板,通过封装openharmony安全子系统deviceauth组件提供的能力,实现了一组可用于设备间快速建立可信认证和连接的接口,通过预先定义关系网,在设备初始化阶段完成端端设备间的认证,构建安全…

ES源码四:网络通信层流程

听说ES网络层很难?今天来卷它😄 前言 ES网络层比较复杂,分为两个部分: 基于HTTP协议的REST服务端基于TCP实现的PRC框架 插件化设计的网络层模块(NetworkModule) 入口还是上一章的创建Node构造方法的地方…

目标检测应用场景—数据集【NO.31】布匹数据集目标检测数据集

写在前面:数据集对应应用场景,不同的应用场景有不同的检测难点以及对应改进方法,本系列整理汇总领域内的数据集,方便大家下载数据集,若无法下载可关注后私信领取。关注免费领取整理好的数据集资料!今天分享…

uniapp picker 多列选择器用法

uniapp picker 多列选择器联动筛选器交互处理方法, uniapp 多列选择器 mode"multiSelector" 数据及筛选联动交互处理, 通过接口获取数据,根据用户选择当前列选项设置子列数据,实现三级联动效果, 本示例中处…
最新文章