【Python知识】一个强大的数据分析库Pandas

devtools/2024/10/23 22:30:13/

文章目录

    • Pandas概述
      • 1. 安装 Pandas
      • 2. 基本数据结构
      • 3. 数据导入和导出
      • 4. 数据清洗
      • 5. 数据选择和过滤
      • 6. 数据聚合和摘要
      • 7. 数据合并和连接
      • 8. 数据透视表
      • 9. 时间序列分析
      • 10. 数据可视化
    • 📈 如何使用 Pandas 进行复杂的数据分析
      • 1. 数据预处理
      • 2. 处理缺失值
      • 3. 处理异常值
      • 4. 数据转换
      • 5. 去重
      • 6. 特征工程
      • 7. 数据划分

Pandas概述

Pandas 是一个强大的 Python 数据分析库,它提供了快速、灵活且富有表现力的数据结构,旨在使数据清洗、处理和分析工作变得更加简单和高效。以下是 Pandas 的详细说明:

1. 安装 Pandas

如果你还没有安装 Pandas,可以通过 pip 命令安装:

pip install pandas

2. 基本数据结构

Pandas 提供了两种主要的数据结构:SeriesDataFrame

  • Series

    • 类似于一维数组,可以包含任何数据类型(整数、字符串、浮点数、Python 对象等)。
    • 每个 Series 都有一个索引(Index),它可以是默认的整数索引,也可以是自定义的标签。
    python">import pandas as pd
    s = pd.Series([1, 3, 5, np.nan, 6, 8])
    print(s)
    
  • DataFrame

    • 类似于二维表格型数据结构,可以被看作是由多个 Series 组成的(每列一个 Series)。
    • DataFrame 有行索引和列索引,可以包含不同类型的列。
    python">data = {'Column1': [1, 2, 3, 4],'Column2': ['a', 'b', 'c', 'd']}
    df = pd.DataFrame(data)
    print(df)
    

3. 数据导入和导出

Pandas 支持多种格式的数据导入和导出,包括 CSV、Excel、JSON、HTML 和 SQL 数据库等。

python"># 从 CSV 文件读取数据
df = pd.read_csv('data.csv')# 将数据写入 CSV 文件
df.to_csv('output.csv', index=False)# 从 Excel 文件读取数据
df = pd.read_excel('data.xlsx')# 将数据写入 Excel 文件
df.to_excel('output.xlsx', index=False)

4. 数据清洗

Pandas 提供了丰富的函数来处理缺失数据、重复数据、数据类型转换等。

python"># 处理缺失值
df.dropna(inplace=True)  # 删除缺失值
df.fillna(value='default_value', inplace=True)  # 填充缺失值# 删除重复数据
df.drop_duplicates(inplace=True)# 数据类型转换
df['Column'] = df['Column'].astype('int')

5. 数据选择和过滤

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

python"># 选择列
selected_columns = df[['Column1', 'Column2']]# 选择行
selected_rows = df[df['Column'] > value]# 使用条件过滤
filtered_df = df[df['Column'].apply(lambda x: x > value)]

6. 数据聚合和摘要

Pandas 允许你轻松地对数据进行聚合和摘要统计。

python"># 数据描述性统计
print(df.describe())# 数据聚合
aggregated_data = df.groupby('Column').agg(['mean', 'sum', 'max'])

7. 数据合并和连接

Pandas 提供了 mergejoinconcat 等函数来合并和连接数据。

python"># 合并两个 DataFrame
merged_df = pd.merge(df1, df2, on='key', how='inner')# 连接两个 DataFrame
concatenated_df = pd.concat([df1, df2], axis=0)

8. 数据透视表

Pandas 的 pivot_table 功能允许你快速创建数据透视表。

python">pivot_table = pd.pivot_table(df, values='Column', index='RowColumn', columns='ColumnColumn', aggfunc='mean')

9. 时间序列分析

Pandas 有强大的时间序列分析功能,可以轻松处理和分析时间序列数据。

python"># 创建时间序列索引
time_series = pd.Series(data, index=pd.date_range('20210101', periods=len(data)))# 时间序列数据的重采样
resampled_data = time_series.resample('M').sum()

10. 数据可视化

Pandas 可以与 Matplotlib 集成,提供数据可视化功能。

python">df.plot(kind='line', x='Column1', y='Column2')
plt.show()

Pandas 是 Python 数据分析和处理的强大工具,它的功能远远超出了这里介绍的内容。通过学习 Pandas,你可以更有效地处理和分析数据,从而提高工作效率。更多详细信息和使用指南,可以参考 Pandas 的官方文档。

📈 如何使用 Pandas 进行复杂的数据分析

使用Pandas进行复杂的数据清洗通常涉及多个步骤,包括数据预处理、异常值处理、缺失值处理、数据转换、去重、特征工程等。以下是一些常用的数据清洗技巧和示例代码:

1. 数据预处理

读取数据

python">import pandas as pd# 读取CSV文件
df = pd.read_csv('data.csv')# 读取Excel文件
df = pd.read_excel('data.xlsx')# 读取数据库
from sqlalchemy import create_engine
engine = create_engine('database_url')
df = pd.read_sql_query('SELECT * FROM table_name', con=engine)

初步查看数据

python"># 查看数据前几行
print(df.head())# 查看数据基本信息
print(df.info())# 查看数据描述性统计
print(df.describe())

2. 处理缺失值

删除缺失值

python"># 删除含有缺失值的行
df = df.dropna()# 删除含有缺失值的列
df = df.dropna(axis=1)

填充缺失值

python"># 用常数填充缺失值
df = df.fillna(value=0)# 用前一个值填充缺失值
df = df.fillna(method='ffill')# 用后一个值填充缺失值
df = df.fillna(method='bfill')

插值填充缺失值

python"># 线性插值填充缺失值
df = df.interpolate(method='linear')

3. 处理异常值

识别异常值

python"># 假设数值列的Z分数大于3或小于-3为异常值
from scipy import stats
df = df[(np.abs(stats.zscore(df['column'])) < 3)]

处理异常值

python"># 将异常值替换为中位数
median_value = df['column'].median()
df['column'] = np.where(np.abs(stats.zscore(df['column'])) > 3, median_value, df['column'])

4. 数据转换

类型转换

python"># 将列转换为数值类型
df['column'] = pd.to_numeric(df['column'], errors='coerce')# 将列转换为日期类型
df['date_column'] = pd.to_datetime(df['date_column'])

编码分类数据

python"># 将分类变量转换为哑变量(One-Hot Encoding)
df = pd.get_dummies(df, columns=['categorical_column'])

5. 去重

删除重复数据

python"># 删除完全重复的行
df = df.drop_duplicates()# 删除基于某些列的重复行
df = df.drop_duplicates(subset=['column1', 'column2'])

6. 特征工程

创建新特征

python"># 根据现有数据创建新特征
df['new_column'] = df['column1'] * df['column2']

特征选择

python"># 使用方差选择特征
from sklearn.feature_selection import VarianceThreshold
selector = VarianceThreshold(threshold=0.5)
df = df.iloc[:, selector.get_support(indices=True)]

7. 数据划分

训练集和测试集划分

python">from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(df.drop('target_column', axis=1), df['target_column'], test_size=0.2, random_state=42)

这些是使用Pandas进行复杂数据清洗的一些关键步骤和技巧。在实际应用中,你可能需要根据具体的数据特点和分析目标来调整这些步骤。Pandas提供了丰富的功能和灵活性,使得它成为数据清洗和预处理的强大工具。


http://www.ppmy.cn/devtools/128273.html

相关文章

基于元神操作系统实现NTFS文件操作(九)

1. 背景 本文继续介绍当前磁盘分区下的文件遍历操作&#xff0c;对于从$Root元文件的90H属性和A0H属性中解析出的子目录&#xff0c;解析每个子目录下的文件&#xff0c;并提供了基于元神操作系统的实现代码。 2. 方法 &#xff08;1&#xff09;判断子目录 判断子目录分为…

TCP标志位在网络故障排查中的作用

http://www.anatraf.com 在网络运维和故障排查中&#xff0c;理解TCP协议至关重要&#xff0c;而TCP标志位&#xff08;Flags&#xff09;更是其中的核心。通过分析TCP包的各个标志位&#xff0c;我们可以获取丰富的状态信息&#xff0c;帮助网络工程师定位问题&#xff0c;优…

QT的文件操作类 QFile

QFile 是 Qt 框架中用于文件处理的一个类。它提供了读取和写入文件的功能&#xff0c;支持文本和二进制文 件。 QFile 继承自 QIODevice &#xff0c;因此它可以像其他IO设备一样使用。 主要功能 文件读写&#xff1a; QFile 支持打开文件进行读取或写入操作文件信息&#x…

vulnhub靶场之digitalworld.local DEVELOPMENT

一.环境搭建 1.靶场描述 This machine reminds us of a DEVELOPMENT environment: misconfigurations rule the roost. This is designed for OSCP practice, and the original version of the machine was used for a CTF. It is now revived, and made slightly more nefari…

15分钟学Go 第9天:函数的定义与调用

第9天&#xff1a;函数的定义与调用 欢迎来到第9天的Go语言学习模块&#xff01;今天我们将深入探讨函数的定义与调用&#xff0c;帮助你掌握如何编写和使用函数。学习函数不仅是Go语言的基础&#xff0c;也是程序设计的核心概念之一。这一节将详细介绍函数的结构、参数传递、…

【VUE】Vue渲染列表为什么要加key

提升Vue渲染性能&#xff1a;帮助 Vue 跟踪每个节点的身份&#xff0c;进行高效的 DOM 操作&#xff1b;如果不设置key值&#xff0c;则 Vue 无法准确地知道哪些元素是新增、删除或者移动的&#xff0c;只能重新渲染整个列表&#xff0c;导致性能下降&#xff1b;只有通过为每个…

计算机毕设项目:网上订餐管理系统(Java+Springboot+MySQL),完整源代码+数据库+毕设文档+部署说明

本文关键字&#xff1a;Java编程&#xff1b;Springboot框架&#xff1b;毕业设计&#xff1b;毕设项目&#xff1b;编程实战&#xff1b;项目源代码&#xff1b;程序数据库&#xff1b;毕设文档&#xff1b;开题报告和任务书&#xff1b;项目部署说明&#xff1b;网上订餐管理…

无法获得下列许可 SOLIDWORKS Standard。 无法从使用许可服务器内读取数据,(-16,10009,10054)

无法获得下列许可 SOLIDWORKS Standard。 无法从使用许可服务器内读取数据&#xff0c;(-16,10009,10054) 错误如图 打开xxclean 扩展功能 服务无法启动