当前位置: 首页 > article >正文

数据清洗与分析工具详解:Pandas 和 NumPy 的全面教程

数据清洗与分析工具详解:Pandas 和 NumPy 的全面教程

引言

在数据科学的世界中,数据清洗与分析是至关重要的步骤。Pandas 和 NumPy 是 Python 中最常用的两个库,它们为数据处理提供了强大的功能。本文将为你详细介绍这两个库的使用方法,配合实例和图示,帮助你深入理解并掌握数据清洗与分析的技巧。
在这里插入图片描述

目录

  1. NumPy 概述
    • 1.1 NumPy 安装
    • 1.2 NumPy 基础
  2. Pandas 概述
    • 2.1 Pandas 安装
    • 2.2 Pandas 基础
  3. 数据清洗
    • 3.1 处理缺失值
    • 3.2 数据类型转换
    • 3.3 重命名列
  4. 数据分析
    • 4.1 数据选择与过滤
    • 4.2 数据分组与聚合
    • 4.3 数据可视化
  5. 实战案例:数据清洗与分析
  6. 总结与展望

1. NumPy 概述

1.1 NumPy 安装

NumPy 是一个用于科学计算的基础库。你可以通过以下命令安装:

pip install numpy

1.2 NumPy 基础

NumPy 提供了强大的 N 维数组对象 ndarray,以及用于数组操作的函数。

创建 NumPy 数组
import numpy as np

# 创建一维数组
arr1 = np.array([1, 2, 3, 4, 5])
print(arr1)

# 创建二维数组
arr2 = np.array([[1, 2, 3], [4, 5, 6]])
print(arr2)
数组运算

NumPy 支持元素级运算:

# 数组加法
arr3 = arr1 + 5
print(arr3)

# 数组乘法
arr4 = arr2 * 2
print(arr4)
数组切片
# 切片操作
print(arr1[1:4])  # 输出 [2 3 4]
print(arr2[:, 1])  # 输出第二列 [2 5]

2. Pandas 概述

2.1 Pandas 安装

Pandas 是一个用于数据分析的库,提供了数据结构和数据分析工具。安装方法如下:

pip install pandas

2.2 Pandas 基础

Pandas 主要有两个数据结构:SeriesDataFrame

创建 Pandas Series
import pandas as pd

# 创建 Series
s = pd.Series([1, 2, 3, 4, 5])
print(s)
创建 Pandas DataFrame
# 创建 DataFrame
data = {
    'name': ['Alice', 'Bob', 'Charlie'],
    'age': [25, 30, 35],
    'city': ['New York', 'Los Angeles', 'Chicago']
}
df = pd.DataFrame(data)
print(df)

3. 数据清洗

数据清洗是数据分析的重要步骤,确保数据的质量和完整性。

3.1 处理缺失值

缺失值会影响分析结果,Pandas 提供了多种处理方法。

# 创建包含缺失值的 DataFrame
data_with_nan = {
    'name': ['Alice', 'Bob', None],
    'age': [25, None, 35],
    'city': ['New York', 'Los Angeles', None]
}
df_nan = pd.DataFrame(data_with_nan)

# 查看缺失值
print(df_nan.isnull())

# 删除缺失值
df_cleaned = df_nan.dropna()
print(df_cleaned)

# 用均值填充缺失值
df_nan['age'].fillna(df_nan['age'].mean(), inplace=True)
print(df_nan)

3.2 数据类型转换

有时需要转换数据类型以便于分析。

# 将年龄列转换为整数类型
df['age'] = df['age'].astype(int)
print(df.dtypes)

3.3 重命名列

# 重命名列
df.rename(columns={'name': 'full_name'}, inplace=True)
print(df)

4. 数据分析

数据分析是从数据中提取有用信息的过程。

4.1 数据选择与过滤

可以根据条件选择数据。

# 选择年龄大于30的人
filtered_df = df[df['age'] > 30]
print(filtered_df)

4.2 数据分组与聚合

Pandas 提供了强大的分组功能。

# 按城市分组并计算平均年龄
grouped = df.groupby('city')['age'].mean()
print(grouped)

4.3 数据可视化

结合 Matplotlib 库进行数据可视化。

pip install matplotlib
import matplotlib.pyplot as plt

# 简单的柱状图
df['city'].value_counts().plot(kind='bar')
plt.title('Number of People by City')
plt.xlabel('City')
plt.ylabel('Count')
plt.show()

5. 实战案例:数据清洗与分析

假设我们有一个 CSV 文件 data.csv,内容如下:

name,age,city
Alice,25,New York
Bob,,Los Angeles
Charlie,35,Chicago
David,,New York

数据清洗与分析步骤

  1. 读取数据
df = pd.read_csv('data.csv')
print(df)
  1. 处理缺失值
df['age'].fillna(df['age'].mean(), inplace=True)
  1. 数据分析
# 按城市分组并计算平均年龄
average_age = df.groupby('city')['age'].mean()
print(average_age)
  1. 数据可视化
average_age.plot(kind='bar')
plt.title('Average Age by City')
plt.xlabel('City')
plt.ylabel('Average Age')
plt.show()

6. 总结与展望

本文详细介绍了 NumPy 和 Pandas 的基本用法,涵盖了数据清洗与分析的各个方面。通过示例和图表,希望能够帮助你更好地理解和使用这些工具。

进一步学习

  • 深入学习数据可视化工具,如 Seaborn 和 Plotly。
  • 探索数据分析的高级主题,如时间序列分析和机器学习。

希望这篇教程能为你的数据分析之旅提供帮助!如果有任何问题或想法,欢迎在评论区留言。


http://www.kler.cn/a/370502.html

相关文章:

  • Rust Actix Web 项目实战教程 mysql redis swagger:构建用户管理系统
  • Android系统开发(一):AOSP 架构全解析:开源拥抱安卓未来
  • PHP 8.4 安装和升级指南
  • Java 接口安全指南
  • 从零开始:Gitee 仓库创建与 Git 配置指南
  • java使用poi-tl自定义word模板导出
  • 《掌握 Java:从基础到高级概念的综合指南》(5/15)
  • 线程同步(互斥锁条件变量)
  • Phpwind GET型CSRF任意代码执行
  • UE5 喷射背包
  • Flink CDC系列之:理解学习YARN模式
  • 威胁 Windows 和 Linux 系统的新型跨平台勒索软件:Cicada3301
  • Armstrong‘s axiom
  • lvs知识点归纳
  • 什么,NGINX无法正向代理HTTPS?
  • fastGpt
  • 计算机网络——开放系统互连参考模型
  • selenium的环境搭建
  • 记录element-ui改造select显示为table,并支持多查询条件
  • 【MATLAB源码-第193期】基于matlab的网络覆盖率NOA优化算法仿真对比VFINOA,VFPSO,VFNGO,VFWOA等算法。
  • JavaEE 多线程第三节 (lambda方法实现多线程/Thread属性和方法/前台线程后台线程)
  • 面试经典 150 题.P88. 合并两个有序数组(001)
  • UE4_Niagara基础实例—10、位置事件
  • 算法的学习笔记—滑动窗口的最大值(牛客JZ59)
  • Unity SpriteEditor 中的图集处理功能
  • 内核上项目【让ntoskrnl.exe保护程序】