📌  相关文章
📜  如何在 pandas 数据框中的列中分配新值 - Python (1)

📅  最后修改于: 2023-12-03 14:52:28.230000             🧑  作者: Mango

如何在 pandas 数据框中的列中分配新值 - Python

Pandas 是一个强大的数据分析工具,其中 DataFrame 是最常用的数据结构之一。在进行数据分析时,通常需要修改 DataFrame 中的数据。本文将介绍如何在 Pandas DataFrame 中的列中分配新值。

步骤

首先,我们需要创建一个 DataFrame,作为演示的数据集。以下是创建 DataFrame 的代码:

import pandas as pd

data = {'name': ['Bob', 'Jessica', 'Mary', 'John', 'Mel'], 
        'age': [22, 25, 27, 20, 18],
        'gender': ['M', 'F', 'F', 'M', 'M'], 
        'score': [75, 83, 91, 88, 68]}

df = pd.DataFrame(data)

现在,我们有了一个包含 4 个列和 5 个行的数据集。具体:

| | name | age | gender | score | |---|---|---|---|---| | 0 | Bob | 22 | M | 75 | | 1 | Jessica | 25 | F | 83 | | 2 | Mary | 27 | F | 91 | | 3 | John | 20 | M | 88 | | 4 | Mel | 18 | M | 68 |

我们可以使用 loc 或 iloc 方法来选择 DataFrame 中的一部分并分配新值。假设我们要将名为 Bob 的行的分数改为 90 分。以下是代码:

df.loc[df['name'] == 'Bob', 'score'] = 90

这会将 DataFrame 中名字为 Bob 的行的分数分配为 90。现在,DataFrame 变为:

| | name | age | gender | score | |---|---|---|---|---| | 0 | Bob | 22 | M | 90 | | 1 | Jessica | 25 | F | 83 | | 2 | Mary | 27 | F | 91 | | 3 | John | 20 | M | 88 | | 4 | Mel | 18 | M | 68 |

如果我们要将所有男性的分数加 5 分,以下是代码:

df.loc[df['gender'] == 'M', 'score'] += 5

这将选择所有男性行并将其分数增加 5 分。现在,DataFrame 变为:

| | name | age | gender | score | |---|---|---|---|---| | 0 | Bob | 22 | M | 95 | | 1 | Jessica | 25 | F | 83 | | 2 | Mary | 27 | F | 91 | | 3 | John | 20 | M | 93 | | 4 | Mel | 18 | M | 73 |

如果要将特定行和列的值进行更改,则可以使用 df.at 或 df.iat 方法。以下是示例代码:

df.at[1, 'age'] = 26
df.iat[3, 2] = 'F'

第一行代码将第二行和列'age'的值更改为 26。第二行代码将第 4 行和第 3 列(即性别)的值更改为 F。现在,DataFrame 变为:

| | name | age | gender | score | |---|---|---|---|---| | 0 | Bob | 22 | M | 95 | | 1 | Jessica | 26 | F | 83 | | 2 | Mary | 27 | F | 91 | | 3 | John | 20 | F | 93 | | 4 | Mel | 18 | M | 73 |

结论

在 Pandas DataFrame 中分配新值是一个很有用的技能。使用 loc,iloc,df.at 或 df.iat 方法可以轻松实现。这可以使数据分析过程更轻松和快速。