page contents

使用 Python 进行数据预处理的 10 个常用函数!

在数据科学领域,数据预处理是一个非常重要的步骤,它能够帮助我们清洗和准备数据,以便更好地进行数据分析或机器学习建模。今天,我们就来聊聊使用 Python 进行数据预处理的 10 个常用函数。这些函数都是基于 Pandas 库的,Pandas 是一个强大的数据处理库,广泛应用于数据科学项目中。

attachments-2024-10-ASsath7P671eeb2132cf4.png在数据科学领域,数据预处理是一个非常重要的步骤,它能够帮助我们清洗和准备数据,以便更好地进行数据分析或机器学习建模。今天,我们就来聊聊使用 Python 进行数据预处理的 10 个常用函数。这些函数都是基于 Pandas 库的,Pandas 是一个强大的数据处理库,广泛应用于数据科学项目中。

1. read_csv:读取 CSV 文件

首先,我们需要将数据加载到 Pandas DataFrame 中。read_csv 函数是最常用的读取 CSV 文件的方法。

import pandas as pd


# 读取 CSV 文件

df = pd.read_csv('data.csv')


# 显示前 5 行数据

print(df.head())

输出结果:

   id  name  age  city

0   1  John   28  New York

1   2  Jane   34  Los Angeles

2   3  Mike   42  Chicago

3   4  Alex   21  Houston

4   5  Emma   29  Phoenix

解释:

pd.read_csv('data.csv'):读取名为 data.csv 的文件。

df.head():显示 DataFrame 的前 5 行数据。

2. info:查看数据信息

info 函数可以显示 DataFrame 的基本信息,包括列名、非空值数量和数据类型。

# 查看数据信息

df.info()

输出结果:

<class 'pandas.core.frame.DataFrame'>

RangeIndex: 5 entries, 0 to 4

Data columns (total 4 columns):

 #   Column  Non-Null Count  Dtype 

---  ------  --------------  ----- 

 0   id      5 non-null      int64 

 1   name    5 non-null      object

 2   age     5 non-null      int64 

 3   city    5 non-null      object

dtypes: int64(2), object(2)

memory usage: 280.0+ bytes

解释:

df.info():显示 DataFrame 的基本信息,包括每列的数据类型和非空值数量。

3. describe:生成描述性统计信息

describe 函数可以生成数值型列的描述性统计信息,如均值、标准差、最小值、最大值等。

# 生成描述性统计信息

print(df.describe())

输出结果:

             id        age

count  5.000000  5.000000

mean   3.000000  30.800000

std    1.581139   8.372603

min    1.000000  21.000000

25%    2.000000  24.500000

50%    3.000000  29.000000

75%    4.000000  34.000000

max    5.000000  42.000000

解释:

df.describe():生成数值型列的描述性统计信息。

4. isnull 和 notnull:检查缺失值

isnull 和 notnull 函数可以用来检查 DataFrame 中是否存在缺失值。

# 检查缺失值

print(df.isnull())


# 检查非缺失值

print(df.notnull())

输出结果:

    id   name    age   city

0  False  False  False  False

1  False  False  False  False

2  False  False  False  False

3  False  False  False  False

4  False  False  False  False


    id   name    age   city

0  True   True   True   True

1  True   True   True   True

2  True   True   True   True

3  True   True   True   True

4  True   True   True   True

解释:

df.isnull():返回一个布尔 DataFrame,表示哪些单元格是缺失值。

df.notnull():返回一个布尔 DataFrame,表示哪些单元格是非缺失值。

5. fillna:填充缺失值

fillna 函数可以用来填充 DataFrame 中的缺失值。

# 填充缺失值

df['age'] = df['age'].fillna(df['age'].mean())


# 显示前 5 行数据

print(df.head())

输出结果:

   id  name  age  city

0   1  John  28.0  New York

1   2  Jane  34.0  Los Angeles

2   3  Mike  42.0  Chicago

3   4  Alex  21.0  Houston

4   5  Emma  29.0  Phoenix

解释:

df['age'].fillna(df['age'].mean()):用 age 列的均值填充缺失值。

6. dropna:删除缺失值

dropna 函数可以用来删除包含缺失值的行或列。

# 删除包含缺失值的行

df = df.dropna()


# 显示前 5 行数据

print(df.head())

输出结果:

   id  name  age  city

0   1  John  28.0  New York

1   2  Jane  34.0  Los Angeles

2   3  Mike  42.0  Chicago

3   4  Alex  21.0  Houston

4   5  Emma  29.0  Phoenix

解释:

df.dropna():删除包含缺失值的行。

7. drop:删除指定的行或列

drop 函数可以用来删除指定的行或列。

# 删除指定的列

df = df.drop(columns=['city'])


# 显示前 5 行数据

print(df.head())

输出结果:

   id  name  age

0   1  John  28.0

1   2  Jane  34.0

2   3  Mike  42.0

3   4  Alex  21.0

4   5  Emma  29.0

解释:

df.drop(columns=['city']):删除 city 列。

8. rename:重命名列

rename 函数可以用来重命名 DataFrame 中的列。

# 重命名列

df = df.rename(columns={'name': 'full_name'})


# 显示前 5 行数据

print(df.head())

输出结果:

   id full_name  age

0   1      John  28.0

1   2      Jane  34.0

2   3      Mike  42.0

3   4      Alex  21.0

4   5      Emma  29.0

解释:

df.rename(columns={'name': 'full_name'}):将 name 列重命名为 full_name。

9. apply:应用自定义函数
apply 函数可以用来对 DataFrame 的列应用自定义函数。
# 定义一个自定义函数
def age_group(age):
    if age < 30:
        return 'Young'
    elif age < 50:
        return 'Middle-aged'
    else:
        return 'Senior'

# 应用自定义函数
df['age_group'] = df['age'].apply(age_group)

# 显示前 5 行数据
print(df.head())
输出结果:
   id full_name  age   age_group
0   1      John  28.0      Young
1   2      Jane  34.0  Middle-aged
2   3      Mike  42.0  Middle-aged
3   4      Alex  21.0      Young
4   5      Emma  29.0      Young
解释:
df['age'].apply(age_group):对 age 列应用 age_group 函数,生成新的 age_group 列。
10. merge:合并 DataFrame
merge 函数可以用来合并两个 DataFrame。
# 创建另一个 DataFrame
df2 = pd.DataFrame({
    'id': [1, 2, 3, 4, 5],
    'salary': [50000, 60000, 70000, 45000, 55000]
})

# 合并 DataFrame
df = df.merge(df2, on='id')

# 显示前 5 行数据
print(df.head())
输出结果:
   id full_name  age   age_group  salary
0   1      John  28.0      Young   50000
1   2      Jane  34.0  Middle-aged   60000
2   3      Mike  42.0  Middle-aged   70000
3   4      Alex  21.0      Young   45000
4   5      Emma  29.0      Young   55000
解释:
df.merge(df2, on='id'):根据 id 列合并 df 和 df2。
实战案例:处理电子商务数据
假设我们有一个电子商务数据集,包含用户的购买记录。我们需要进行以下操作:1. 读取数据。2. 检查并处理缺失值。3. 生成用户购买次数和总金额的汇总信息。4. 将结果保存到新的 CSV 文件中。
import pandas as pd

# 1. 读取数据
df = pd.read_csv('ecommerce_data.csv')

# 2. 检查并处理缺失值
print(df.isnull().sum())
df = df.dropna()

# 3. 生成用户购买次数和总金额的汇总信息
user_summary = df.groupby('user_id').agg({'order_id': 'count', 'amount': 'sum'}).reset_index()
user_summary.columns = ['user_id', 'purchase_count', 'total_amount']

# 4. 将结果保存到新的 CSV 文件中
user_summary.to_csv('user_summary.csv', index=False)

# 显示前 5 行数据
print(user_summary.head())
输出结果:
   user_id  purchase_count  total_amount
0        1              5        1500.0
1        2              3         900.0
2        3              7        2100.0
3        4              2         400.0
4        5              4        1200.0
总结
本文介绍了使用 Python 进行数据预处理的 10 个常用函数,包括读取 CSV 文件、查看数据信息、生成描述性统计信息、检查和处理缺失值、删除指定的行或列、重命名列、应用自定义函数、合并 DataFrame 等。通过这些函数,我们可以高效地处理和准备数据,为后续的数据分析或机器学习任务打下坚实的基础。

更多相关技术内容咨询欢迎前往并持续关注好学星城论坛了解详情。

想高效系统的学习Python编程语言,推荐大家关注一个微信公众号:Python编程学习圈。每天分享行业资讯、技术干货供大家阅读,关注即可免费领取整套Python入门到进阶的学习资料以及教程,感兴趣的小伙伴赶紧行动起来吧。

attachments-2022-05-rLS4AIF8628ee5f3b7e12.jpg

  • 发表于 2024-10-28 09:38
  • 阅读 ( 41 )
  • 分类:Python开发

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
小柒
小柒

1470 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 1470 文章
  3. Pack 1135 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章