深度学习: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']

上一篇:DNS污染?SNI阻断?全新网络协议保护隐私安全


下一篇:【开源免费】基于SpringBoot+Vue.JS蜗牛兼职平台 (JAVA毕业设计)