百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

Pandas,一个数据分析、处理与可视化无敌的 Python 库!

liuian 2025-02-15 16:32 31 浏览

# 小伙伴们,大家好!今天我们要一起探索的,是Python中一个强大的数据分析、处理与可视化库——Pandas。
如果你经常需要处理数据,无论是做科研、数据分析还是简单的数据整理,Pandas都能成为你的得力助手。
它提供了丰富的数据结构和函数,让数据操作变得简单又高效。
接下来,我们就一起揭开Pandas的神秘面纱吧!

## 一、初识Pandas

Pandas是基于NumPy的一种工具,该工具是为了解决数据分析任务而创建的。
它提供了两种主要的数据结构:**Series**(一维)和**DataFrame**(二维),
这两种数据结构足以满足我们日常大部分的数据处理需求。

### 1. 安装Pandas

在开始使用Pandas之前,我们需要先安装它。如果你还没有安装,可以使用以下命令:

```bash
pip install pandas

2. 导入Pandas

每次使用Pandas前,我们需要先导入它,通常我们会用pd作为别名:

import pandas as pd

二、Series,一维数据的利器

Series是Pandas中的一维数据结构,可以存储任何数据类型。你可以把它想象成一个加强版的Python列表,不仅支持基本的数据操作,还提供了许多便捷的数据处理方法。

1. 创建Series

# 创建一个简单的Series
data = pd.Series([1, 3, 5, 7, 9])
print(data)

运行结果

0    1
1    3
2    5
3    7
4    9
dtype: int64

2. Series的基本操作

# 访问Series中的元素
print(data[0])  # 输出第一个元素
print(data[1:3])  # 切片操作,输出第2到第3个元素

# 修改Series中的元素
data[0] = 10
print(data)

小贴士:Series的索引是从0开始的,和Python的列表一样。

三、DataFrame,二维数据的王者

DataFrame是Pandas中的二维数据结构,类似于Excel中的表格,或者Python中的嵌套列表。它支持非常丰富的操作,是数据分析中的核心工具。

1. 创建DataFrame

# 创建一个简单的DataFrame
data = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Age': [25, 30, 35],
    'City': ['New York', 'Los Angeles', 'Chicago']
}
df = pd.DataFrame(data)
print(df)

运行结果

      Name  Age         City
0    Alice   25     New York
1      Bob   30  Los Angeles
2  Charlie   35      Chicago

2. DataFrame的基本操作

# 访问DataFrame中的列
print(df['Name'])  # 访问Name列
print(df[['Name', 'Age']])  # 访问多列

# 访问DataFrame中的行
print(df.loc[0])  # 通过索引标签访问第一行
print(df.iloc[1])  # 通过索引位置访问第二行

# 修改DataFrame中的元素
df.loc[0, 'Age'] = 26
print(df)

小贴士loc是通过索引标签来访问数据的,而iloc是通过索引位置来访问数据的。

3. 常用的DataFrame方法

# 描述统计信息
print(df.describe())  # 输出数值列的统计信息

# 排序
sorted_df = df.sort_values(by='Age')
print(sorted_df)

# 添加新列
df['Salary'] = [70000, 80000, 90000]
print(df)

# 删除列
df.drop('Salary', axis=1, inplace=True)
print(df)

注意事项drop方法中的axis=1表示删除列,inplace=True表示在原DataFrame上修改。

四、数据筛选与过滤

在处理数据时,我们经常需要根据某些条件筛选或过滤数据。Pandas提供了非常便捷的方法来实现这些操作。

1. 条件筛选

# 筛选出年龄大于30的行
filtered_df = df[df['Age'] > 30]
print(filtered_df)

2. 逻辑运算筛选

# 筛选出年龄大于25且城市为New York的行
filtered_df = df[(df['Age'] > 25) & (df['City'] == 'New York')]
print(filtered_df)

小贴士:在逻辑运算中,使用&表示“且”,使用|表示“或”。

五、数据缺失处理

在实际的数据分析中,数据缺失是一个常见的问题。Pandas提供了多种方法来处理缺失数据。

1. 检查缺失数据

# 创建一个包含缺失数据的DataFrame
data = {
    'Name': ['Alice', 'Bob', None],
    'Age': [25, None, 35],
    'City': ['New York', 'Los Angeles', 'Chicago']
}
df = pd.DataFrame(data)
print(df)

# 检查缺失数据
print(df.isnull())  # 返回一个布尔DataFrame,标记缺失值

2. 处理缺失数据

# 删除包含缺失值的行
df_dropped = df.dropna()
print(df_dropped)

# 填充缺失值
df_filled = df.fillna({'Name': 'Unknown', 'Age': 0})
print(df_filled)

小贴士dropna方法默认删除包含任何缺失值的行,可以通过参数how='all'来删除全部为缺失值的行。

六、数据分组与聚合

分组与聚合是数据分析中的重要操作,Pandas的groupby方法让这一切变得简单。

1. 数据分组

# 按城市分组
grouped = df.groupby('City')
print(grouped)

2. 聚合操作

# 计算每个城市的平均年龄
age_mean = grouped['Age'].mean()
print(age_mean)

# 对每个城市的年龄进行求和
age_sum = grouped['Age'].sum()
print(age_sum)

小贴士:除了meansum,Pandas还支持许多其他的聚合函数,如countminmax等。

七、数据可视化

虽然Pandas本身不是专门用于数据可视化的库,但它与Matplotlib等可视化库结合得非常好,可以方便地进行简单的数据可视化。

1. 导入Matplotlib

import matplotlib.pyplot as plt

2. 绘制简单图表

# 绘制年龄的直方图
df['Age'].plot(kind='hist')
plt.xlabel('Age')
plt.ylabel('Frequency')
plt.title('Age Distribution')
plt.show()

小贴士plot方法是Pandas的DataFrame和Series对象自带的,可以非常方便地绘制各种图表。

结语

小伙伴们,今天的Python学习之旅就到这里啦!我们一起探索了Pandas的基本概念和常用操作,包括Series和DataFrame的创建与操作、数据筛选与过滤、数据缺失处理、数据分组与聚合以及简单的数据可视化。Pandas是一个非常强大的库,掌握它将会大大提升你的数据分析能力。记得动手敲代码,多实践才能更深入地理解哦!有问题随时在评论区问猿小哥哦。祝大家学习愉快,Python学习节节高!

相关推荐

教你把多个视频合并成一个视频的方法

一.情况介绍当你有一个m3u8文件和一个目录,目录中有连续的视频片段,这些片段可以连成一段完整的视频。m3u8文件打开后像这样:m3u8文件,可以理解为播放列表,里面是播放视频片段的顺序。视频片段像这...

零代码编程:用kimichat合并一个文件夹下的多个文件

一个文件夹里面有很多个srt字幕文件,如何借助kimichat来自动批量合并呢?在kimichat对话框中输入提示词:你是一个Python编程专家,完成如下的编程任务:这个文件夹:D:\downloa...

Java APT_java APT 生成代码

JavaAPT(AnnotationProcessingTool)是一种在Java编译阶段处理注解的工具。APT会在编译阶段扫描源代码中的注解,并根据这些注解生成代码、资源文件或其他输出,...

Unit Runtime:一键运行 AI 生成的代码,或许将成为你的复制 + 粘贴神器

在我们构建了UnitMesh架构之后,以及对应的demo之后,便着手于实现UnitMesh架构。于是,我们就继续开始UnitRuntime,以用于直接运行AI生成的代码。PS:...

挣脱臃肿的枷锁:为什么说Vert.x是Java开发者手中的一柄利剑?

如果你是一名Java开发者,那么你的职业生涯几乎无法避开Spring。它如同一位德高望重的老国王,统治着企业级应用开发的大片疆土。SpringBoot的约定大于配置、SpringCloud的微服务...

五年后,谷歌还在全力以赴发展 Kotlin

作者|FredericLardinois译者|Sambodhi策划|Tina自2017年谷歌I/O全球开发者大会上,谷歌首次宣布将Kotlin(JetBrains开发的Ja...

kotlin和java开发哪个好,优缺点对比

Kotlin和Java都是常见的编程语言,它们有各自的优缺点。Kotlin的优点:简洁:Kotlin程序相对于Java程序更简洁,可以减少代码量。安全:Kotlin在类型系统和空值安全...

移动端架构模式全景解析:从MVC到MVVM,如何选择最佳设计方案?

掌握不同架构模式的精髓,是构建可维护、可测试且高效移动应用的关键。在移动应用开发中,选择合适的软件架构模式对项目的可维护性、可测试性和团队协作效率至关重要。随着应用复杂度的增加,一个良好的架构能够帮助...

颜值非常高的XShell替代工具Termora,不一样的使用体验!

Termora是一款面向开发者和运维人员的跨平台SSH终端与文件管理工具,支持Windows、macOS及Linux系统,通过一体化界面简化远程服务器管理流程。其核心定位是解决多平台环境下远程连接、文...

预处理的底层原理和预处理编译运行异常的解决方案

若文章对您有帮助,欢迎关注程序员小迷。助您在编程路上越走越好![Mac-10.7.1LionIntel-based]Q:预处理到底干了什么事情?A:预处理,顾名思义,预先做的处理。源代码中...

为“架构”再建个模:如何用代码描述软件架构?

在架构治理平台ArchGuard中,为了实现对架构的治理,我们需要代码+模型描述所要处理的内容和数据。所以,在ArchGuard中,我们有了代码的模型、依赖的模型、变更的模型等,剩下的两个...

深度解析:Google Gemma 3n —— 移动优先的轻量多模态大模型

2025年6月,Google正式发布了Gemma3n,这是一款能够在2GB内存环境下运行的轻量级多模态大模型。它延续了Gemma家族的开源基因,同时在架构设计上大幅优化,目标是让...

比分网开发技术栈与功能详解_比分网有哪些

一、核心功能模块一个基本的比分网通常包含以下模块:首页/总览实时比分看板:滚动展示所有正在进行的比赛,包含比分、比赛时间、红黄牌等关键信息。热门赛事/焦点战:突出显示重要的、关注度高的比赛。赛事导航...

设计模式之-生成器_一键生成设计

一、【概念定义】——“分步构建复杂对象,隐藏创建细节”生成器模式(BuilderPattern):一种“分步构建型”创建型设计模式,它将一个复杂对象的构建与其表示分离,使得同样的构建过程可以创建...

构建第一个 Kotlin Android 应用_kotlin简介

第一步:安装AndroidStudio(推荐IDE)AndroidStudio是官方推荐的Android开发集成开发环境(IDE),内置对Kotlin的完整支持。1.下载And...