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

深度学习:pandas篇

1. Pandas 基础

Pandas 是一个帮助你处理和分析数据的工具

安装 Pandas
pip install pandas
导入 Pandas,我们用 pd 来代替 Pandas 的全称,这样以后写代码的时候更简洁
import pandas as pd
建 Series 和 DataFrame

Pandas 最基本的两个数据结构是 SeriesDataFrameSeries 是一维的,类似于列表或数组;而 DataFrame 是二维的,类似于电子表格

# 创建一个 Series(就像 Excel 中的一列数据)
data = pd.Series([10, 20, 30, 40])# 创建一个 DataFrame(像 Excel 表格,有行有列)
data_dict = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35]}
df = pd.DataFrame(data_dict)
基本的数据操作

如何查看、操作 DataFrame 的数据

# 查看前几行数据
print(df.head())  # 默认查看前5行# 查看数据信息,了解数据的详细信息,比如有多少列,每一列的类型
print(df.info())# 统计摘要,了解数值列的统计信息(比如平均值、最大值等)
print(df.describe())

2. 数据索引与选取

我们可以通过标签、位置索引以及布尔条件来选取数据

# 设你有一个带名字和年龄的表格,如何只看年龄列
# 通过标签选取列
age_column = df['Age'] # 这样就得到了年龄这列# 如果你想看某一行,比如第一个人是谁
# 通过行列位置选取
first_row = df.iloc[0] # iloc 用来按位置选取,0 表示第一行# 条件筛选
adults = df[df['Age'] > 30]
布尔索引与条件筛选

可以根据条件快速提取特定的数据

# 查找年龄大于30的人
adults = df[df['Age'] > 30]

3. 数据清洗与处理

缺失值处理

在实际数据集中,经常会遇到缺失值

# 统计每一列有多少缺失值
print(df.isnull().sum())# 填充缺失值 用 0 填充这些空的地方
df.fillna(value=0, inplace=True)# 删除缺失值
df.dropna(inplace=True)
数据类型转换

有时我们需要将数据类型进行转换

# 将列转换为日期格式
df['Date'] = pd.to_datetime(df['Date'])
重命名与重复值处理

可以对 DataFrame 中的列进行重命名,或去除重复的行

# 重命名列
df.rename(columns={'Age': 'Years'}, inplace=True)# 删除重复值
df.drop_duplicates(inplace=True)

4. 数据聚合与分组操作

Pandas 的 groupby 和聚合函数可以帮助我们对数据进行分组和汇总,简化数据分析的工作

# 比如你需要根据某个条件对数据进行分组,比如想知道每个年龄段的平均工资是多少
# 按年龄分组,并计算平均数
grouped = df.groupby('Age').mean()# 聚合操作
aggregated = df.groupby('Age').agg({'Salary': ['mean', 'max']})
数据透视表

类似 Excel 的数据透视表功能,可以用于复杂的多维数据分析

# 创建透视表
pivot_table = df.pivot_table(values='Salary', index='Department', columns='Age', aggfunc='mean')

5. 数据可视化

可以与 Matplotlib 和 Seaborn 集成(后出文讲解,这个知道他是可视化工具就可以啦),实现数据的可视化

import matplotlib.pyplot as plt# 简单的折线图
df['Age'].plot(kind='line')
plt.show()# 使用 Seaborn 进行高级可视化
import seaborn as sns
sns.boxplot(x=df['Age'])
plt.show()

6. 数据处理技巧

数据归一化与标准化

有时为了让不同的数据更好地比较,我们就会对数据进行归一化或标准化。举例,如果年龄的范围是 20 到 60 岁,就可以把它“压缩”到 0 和 1 之间

数据归一化和标准化是常见的预处理步骤,以保证模型收敛速度更快,效果更好

# 数据归一化
df['Normalized_Age'] = (df['Age'] - df['Age'].min()) / (df['Age'].max() - df['Age'].min())# 数据标准化
df['Standardized_Age'] = (df['Age'] - df['Age'].mean()) / df['Age'].std()
特征工程中的 Pandas 操作

特征工程非常重要(以后写),Pandas 可以快速进行数据转换和特征创建

# 创建新的特征列
df['Age_Squared'] = df['Age'] ** 2# 处理分类变量
df = pd.get_dummies(df, columns=['Category'])

7. 实战里的操作

假设你有一个大规模的数据集,需要对其进行处理并应用到深度学习模型中
这里是一些常见的操作

# 从大文件中逐块读取数据
chunk_size = 10000
for chunk in pd.read_csv('large_dataset.csv', chunksize=chunk_size):# 对每个数据块进行处理processed_chunk = process_data(chunk)

因为当你处理非常大的数据集时,你可能没办法一次性加载所有数据。所以你需要把数据按块加载,并分批处理 

数据清洗与特征工程

在预处理深度学习数据集时清洗数据和生成有效特征

# 清洗数据
df_cleaned = df.dropna()# 生成新特征
df_cleaned['interaction_feature'] = df_cleaned['Feature1'] * df_cleaned['Feature2']

http://www.lryc.cn/news/467456.html

相关文章:

  • Redis学习文档(Redis基本数据类型【Hash、Set】)
  • 15分钟学Go 第9天:函数的定义与调用
  • Java虚拟机:JVM介绍
  • R数据科学 16.5.3练习题
  • 通过conda install -c nvidia cuda=“11.3.0“ 安装低版本的cuda,但是却安装了高版本的12.4.0
  • 简易CPU设计入门:验证取指令模块
  • 【MySQL数据库】MySQL主从复制
  • CDC变更数据捕捉技术是什么?和ETL有什么不同?
  • 一种用于推进欧洲临床中心中风管理的联邦学习平台即服务
  • 给哔哩哔哩bilibili电脑版做个手机遥控器
  • opencv dnn模块 示例(27) 目标检测 object_detection 之 yolov11
  • 鸿蒙开发融云demo初始化和登录
  • 手机防窥膜的工作原理是怎样的?有必要使用防窥膜吗?
  • 【Python_PySide6学习笔记(三十九)】基于QLineEdit实现自定义文本框,用于格式化文本,每四个字符后添加一个空格
  • 23种设计模式口诀速记
  • n > m 将输出文件 m 和 n 合并。 n < m 将输入文件 m 和 n 合并。 有什么区别
  • 语言障碍在自闭症儿童中的表现及应对
  • (成功解决)ubuntu22.04不小心更新成了atzlinux12.7.1,右上角出现红色错误符号
  • 005 C#语言基本元素概览,初识类型,变量与方法
  • Spring Cloud --- Sentinel 授权规则
  • 计算机网络基础 - 传输层(1)
  • Chrome DevTools:Console Performance 汇总篇
  • 【Spark | Spark-Core篇】RDD行动算子action
  • 23.Redis核心数据结构
  • 免费送源码:Node.JS+Express+MySQL Express 流浪动物救助系统 计算机毕业设计原创定制
  • 基于Java+Springboot+Vue开发的旅游景区管理系统
  • Python 实现的风控系统(使用了kafka、Faust、模拟drools、redis、分布式数据库)
  • Linux运维_Rocky8 安装配置Zabbix
  • jQuery Mobile 滚屏事件
  • 3.1.1ReactOS系统中搜索给定长度的空间地址区间函数的实现