N数据分析pandas基础.py

 前言:在数据分析领域,Python 的 Pandas 库堪称得力助手。它不仅拥有高效的数据处理能力,还能与 NumPy 完美配合——后者强大的数值计算功能为 Pandas 提供了坚实的技术基础。

目录

Pandas数据分析实战:解锁数据处理的高效之道

数据创建与查看:第一步总是最难的?

数据选择与修改:精准操作的奥秘

数据筛选:大海捞针的必备技能

数据排序与聚合:深度分析的利器

数据合并与缺失值处理: perfection 的关键步骤

Pandas与NumPy的神仙组合

总结


Pandas数据分析实战:解锁数据处理的高效之道

最近在学习数据分析的过程中,我发现 Pandas 这个工具真的是太实用了!今天就想跟大家分享一下我在学习 Pandas 过程中总结的一些基础操作和实战经验。

数据创建与查看:第一步总是最难的?

刚开始接触数据分析时,创建和查看数据这一步就让我琢磨了很久。后来发现 Pandas 的 DataFrame 简直就是为了解决这个问题而生的。你可以用字典轻松创建一个数据表,像这样:

import numpy as np
import pandas as pddata = {'名字': ['张三', '李四', '王五', '赵六'],'年龄': [25, 30, 35, 40],'城市': ['北京', '上海', '广州', '深圳']}
df = pd.DataFrame(data)
print("原始数据:")
print(df)

是不是很方便?不过别急,这还只是开始。查看数据的时候,我发现 head()tail() 简直是拯救了我这个数据量大的时候容易犯迷糊的人。再配上 info(),数据的底细能摸得一清二楚。

数据选择与修改:精准操作的奥秘

在数据选择上,我发现 Pandas 的方式特别灵活。按列选择直接用列名就行,简单粗暴。按行选择呢,ilocloc 各有千秋,iloc 按位置索引,loc 按标签索引,用起来得心应手。

print("\n选择索引为1的行:")
print(df.iloc[1])print("\n选择索引为2的行:")
print(df.loc[2])

至于修改数据,刚开始我还担心会很复杂。结果发现批量修改一列简单得很,直接重新赋值就行了。要是只改某个位置的数据,用 at 方法也很方便。

print("\n修改'年龄'列的值:")
df['年龄'] = [26, 31, 36, 41]
print(df)print("\n修改索引为1的行,年龄为32:")
df.at[1, '年龄'] = 32
print(df)

这些操作让我感觉对数据的掌控力满满。

数据筛选:大海捞针的必备技能

数据筛选这一步,我感觉就像是在大海里捞针。不过 Pandas 让这个过程变得简单了。筛选符合条件的数据,直接用条件表达式就能搞定。

print("\n筛选年龄大于30的人:")
print(df[df['年龄'] > 30])print("\n筛选城市为'北京'或'上海'的人:")
print(df[(df['城市'] == '北京') | (df['城市'] == '上海')])

通过这些筛选,我能快速把想要的数据挑出来,效率提升不少。

数据排序与聚合:深度分析的利器

数据分析嘛,肯定少不了排序和聚合。排序的话,sort_values() 让数据能按照指定列从小到大或者降序排列,特别直观。

print("\n按年龄从小到大排序:")
print(df.sort_values(by='年龄'))print("\n按年龄降序排序:")
print(df.sort_values(by='年龄', ascending=False))

聚合操作更是一绝。用 groupby 按城市统计平均年龄,一眼就能看出不同城市的年龄分布情况。

data_group = {'城市': ['北京', '北京', '上海', '上海', '广州', '广州'],'年龄': [25, 30, 28, 35, 32, 40]}
df_group = pd.DataFrame(data_group)print("\n按城市统计平均年龄:")
print(df_group.groupby('城市')['年龄'].mean())

这些操作让我对数据的理解更深入了。

数据合并与缺失值处理: perfection 的关键步骤

在实际项目里,数据来源往往很杂乱。数据合并和缺失值处理就成了关键。合并数据时,merge 方法能帮我们把不同来源的数据整合到一起。

df1 = pd.DataFrame({'名字': ['张三', '李四'],'年龄': [25, 30]})
df2 = pd.DataFrame({'名字': ['李四', '王五'],'工作': ['医生', '教师']})print("\n按'名字'列合并两个DataFrame:")
print(pd.merge(df1, df2, on='名字', how='inner'))print("\n外连接(包含所有名字):")
print(pd.merge(df1, df2, on='名字', how='outer'))

至于缺失值,填充或者删除都行,看具体需求。

data_with_nan = {'名字': ['张三', '李四', np.nan, '赵六'],'年龄': [25, np.nan, 35, 40],'城市': ['北京', '上海', '广州', np.nan]}
df_with_nan = pd.DataFrame(data_with_nan)print("\n用'未知'填充名字的缺失值:")
print(df_with_nan['名字'].fillna('未知'))print("\n用平均值填充年龄的缺失值:")
mean_age = df_with_nan['年龄'].mean()
print(df_with_nan['年龄'].fillna(mean_age))print("\n删除有缺失值的行:")
print(df_with_nan.dropna())

这些步骤让数据更完整、更可用。

Pandas与NumPy的神仙组合

提到数据处理,就不得不提 Pandas 和 NumPy 的神仙组合。NumPy 的数值计算能力,为 Pandas 提供了强大的支持。比如用 NumPy 生成随机数据,再用 Pandas 分析,这种操作在实际项目里很常见。

data = np.random.randn(5, 3)
df_random = pd.DataFrame(data, columns=['A', 'B', 'C'])
print("\n随机生成的数据:")
print(df_random)print("\n每列的平均值:")
print(df_random.mean())

总结

Pandas 作为数据分析的强大工具,为我们提供了丰富的功能和便捷的操作方式。无论是数据创建、查看、选择、修改,还是数据筛选、聚合、合并,都能轻松应对。结合 NumPy 的数值计算能力,Pandas 让我们在数据分析的道路上更加得心应手。希望这篇博客能为你打开数据分析的大门,帮助你在数据的海洋中探索出更多宝藏。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

卫星通信链路预算之二:带宽和功带平衡

在上一个章节卫星通信链路预算之一:信噪比分配 中,我们介绍了卫星通信链路中最核心的概念:信噪比分配,并给出了卫星通信链路总信噪比的计算公式。 本篇文章,我们将介绍卫星通信链路中的另外一个基本概念:带…

QGIS新手教程5:图层属性查询与表达式筛选技巧

✅ QGIS新手教程5:图层属性查询与表达式筛选技巧 字段筛选、表达式构建器、选择集操作一步到位! 目录 ✅ QGIS新手教程5:图层属性查询与表达式筛选技巧📁 一、示例数据准备(继续使用第四篇中的示例)&#…

用 el-dialog 做出弹出框是图片

今天项目上用到个功能是点击按钮弹出一个 modal&#xff0c;有遮罩层而且在上面显示图片。 其实就是 el-dialog 的功能&#xff0c;但是 el-dialog 弹出后&#xff0c;有标签关闭按钮还有背景。 解决办法&#xff1a;el-dialog 的 width 设为 0 就可以了。 <template>…

Gartner《Decision Point for Selecting the Right APIMediation Technology》学习心得

一、API 中介技术概述 背景&#xff0c;API 中介技术变得多样化&#xff0c;应用与集成架构师需要借助决策框架&#xff0c;从企业级 API 网关、轻量级网关、入口网关以及服务网格中挑选出适合多粒度服务和 API 的中介技术。 随着无服务器架构与容器管理系统的兴起&#xff0…

快速 SystemC 之旅(一)

快速 SystemC 之旅&#xff08;一&#xff09; 一、前言背景二、实验环境1. 安装步骤2. 验证安装 三、RTL 级硬件描述1. 初看模块2. 二输入与非门 一、前言背景 因项目需求&#xff0c;近期开始开展电子系统级设计&#xff08;ESL&#xff09;进行事务级建模&#xff08;TLM&a…

解决 Golang 下载golang.org/x包失败方案

在 Golang 开发过程中&#xff0c;不少开发者都遇到过这样的困扰&#xff1a;当试图下载golang.org相关包时&#xff0c;会出现访问失败的情况&#xff0c;尤其是golang.org/x系列包&#xff0c;作为众多第三方库依赖的核心组件&#xff0c;其无法正常下载会严重影响项目的开发…

CppCon 2016 学习:BUILDING A MODERN C++ FORGE FOR COMPUTE AND GRAPHICS

你提供的这段文字是关于 设计一个精简但足够的 C 框架来驱动 Vulkan 的目标陈述&#xff0c;属于项目文档或演讲的第一部分 “Goals”。我们可以把它逐项拆解并深入理解&#xff1a; PART (I – I): GOALS&#xff08;目标&#xff09; 总体目标&#xff1a; 构建一个最小但足…

# AI武装大脑:技术管理者如何用人工智能重构认知与决策系统

作为一位经历了15年技术管理实战的老兵&#xff0c;我见过太多项目因为决策失误、认知局限而陷入泥潭。直到我开始系统性地用AI武装大脑&#xff0c;才真正找到了突破技术管理瓶颈的利器。今天&#xff0c;我要分享的不是那些泛泛而谈的AI概念&#xff0c;而是如何用AI真正提升…

【Linux】UDP与TCP协议

目录 UDP协议 1.1通信流程 1.2函数 socket bind sendto recvfrom close 1.3实现udp通信 TCP协议 1.1TCP头部结构 1.2通信流程 三次握手 正式通信 四次挥手 1.3协议特性 面向字节流 可靠传输 序列号和确认号 重传机制 流量控制和拥塞控制 1.4常用函数 s…

gbase8s之MyBatis批量update问题

源代码 <update id"updateDynamicTableData"><foreach collection"mapList" item"map" separator";">UPDATE ${tableName} SET<foreach collection"map" item"value" index"key" separ…

博图SCL中WHILE语句的使用详解及案例

在西门子TIA Portal的SCL&#xff08;结构化控制语言&#xff09;编程中&#xff0c;WHILE循环是处理条件迭代任务的核心工具。它根据布尔表达式动态控制循环执行&#xff0c;适用于不确定循环次数的场景。下面从语法、执行流程、注意事项到实际案例全面解析。 一、WHILE循环基…

简单聊聊JVM中的几种垃圾收集算法

3.4、分代收集算法 分代收集算法&#xff0c;可以看成以上内容的延伸。它的实现思路是根据对象的生命周期的不同&#xff0c;将内存划分为几块&#xff0c;比如把堆空间划分为新生代和老年代&#xff0c;然后根据各块的特点采用最适当的收集算法。 在新生代中&#xff0c;存在…

依赖已导入,已下载,无法使用问题

明明已经导入依赖&#xff0c;却无法使用相关注解 于是&#xff0c;我使用 mvn dependency:tree -Dverbose 来查看是否有依赖冲突 [INFO] ------------------------------------------------------------------------ [ERROR] Failed to execute goal on project agileboot…

答题考试系统小程序ThinkPHP+UniApp

ThinkPHPUniapp开发的小程序答题考试系统&#xff0c;支持多种试题类型、多种试题难度、练题、考试、补考模式&#xff0c;提供全部前后台无加密源代码&#xff0c;支持私有化部署. 更新日志 V1.7.1修复一些问题 解决考场成绩列表重复问题&#xff1b; 解决后台材料题选择子…

DHCP服务管理

目录 DHCP协议 DHCP的优势 DHCP的分配方式 应用场景 注意 工作流程 何时更新租约 当客户端重启后 客户端类型 DCHP安装与配置 网络规划&#xff1a; 配置 DHCP 作用域 启动 DHCP 服务 配置路由器 配置路由器网卡 IP 开启 IP 转发&#xff08;确保跨网段通信&…

12.UDP客户端

准备工作 硬件准备&#xff1a;确保你的STM32板子已经正确连接了DP83848网络芯片。 软件设置&#xff1a; 安装好STM32CubeMX用于配置工程。 选择合适的STM32 HAL库版本。 如果可能的话&#xff0c;安装LwIP库支持TCP/IP协议栈。 步骤 1. 使用STM32CubeMX配置项目 打开…

希尔脚本简介及常用命令代码整理

一、Shell 脚本简介 1. 定义 Shell 是用户与操作系统内核交互的桥梁&#xff0c;常见类型有 Bash、Zsh、PowerShell 等。Shell 脚本则是一系列 Shell 命令的集合&#xff0c;通常保存为后缀为.sh 的文本文件。 2. 作用 类别描述自动化重复性任务例如定期备份数据、执行定时…

【人工智能下的智算网络】广域网优化

一、广域网络多路径I/O写的并行路径优化方案 1.1、数学建模 网络拓扑优化​ 1. ​拓扑抽象与路径发现​ ​邻接矩阵建模​&#xff1a; 将网络节点抽象为图顶点 G (V, E)&#xff0c;链路带宽与延迟定义为边权 w(e)。构造邻接矩阵 A&#xff0c;其中元素 A_{ij} 表示节点 …

AI测试开发工程师如何用大模型调用工具:从入门到实践

在软件测试领域&#xff0c;测试工程师常常面临测试用例设计复杂、数据生成繁琐、结果验证耗时等挑战。随着大语言模型&#xff08;LLM&#xff09;的迅速发展&#xff0c;Chat类大模型&#xff08;如GPT、LangChain支持的模型&#xff09;为测试开发提供了一种全新思路——工具…

迁移学习基础

知识的“跨界复用” 你是一位经验丰富的厨师&#xff08;源模型&#xff09;&#xff0c;尤其擅长做意大利菜&#xff08;源任务/源域&#xff09;。现在&#xff0c;老板让你去新开的一家融合餐厅工作&#xff0c;需要你做亚洲菜&#xff08;目标任务/目标域&#xff09;。你…