如何在 pandas 中使用 allocate() 方法(附示例)


allocate()方法可用于向 pandas DataFrame 添加新列。

该方法使用以下基本语法:

 df. assign (new_column = values)

需要注意的是,该方法只会在控制台上显示新的DataFrame,而不会真正修改原始的DataFrame。

要修改原始 DataFrame,您需要将allocate()方法的结果存储在新变量中。

以下示例展示了如何通过以下 pandas DataFrame 以不同方式使用allocate()方法:

 import pandas as pd

#define DataFrame
df = pd. DataFrame ({' points ': [25, 12, 15, 14, 19, 23, 25, 29],
                   ' assists ': [5, 7, 7, 9, 12, 9, 9, 4],
                   ' rebounds ': [11, 8, 10, 6, 6, 5, 9, 12]})

#view DataFrame
print (df)

   points assists rebounds
0 25 5 11
1 12 7 8
2 15 7 10
3 14 9 6
4 19 12 6
5 23 9 5
6 25 9 9
7 29 4 12

示例 1:将新变量分配给 DataFrame

下面的代码展示了如何使用allocate()方法向 DataFrame 添加一个名为points2的新变量,其值等于points列中的值乘以2:

 #add new variable called points2
df. assign (points2 = df.points * 2 )

    points assists rebounds points2
0 25 5 11 50
1 12 7 8 24
2 15 7 10 30
3 14 9 6 28
4 19 12 6 38
5 23 9 5 46
6 25 9 9 50
7 29 4 12 58

请注意,此allocate()方法不会修改原始 DataFrame。

如果我们打印原始 DataFrame,我们将看到它保持不变:

 #print original DataFrame
print (df)

   points assists rebounds
0 25 5 11
1 12 7 8
2 15 7 10
3 14 9 6
4 19 12 6
5 23 9 5
6 25 9 9
7 29 4 12

为了保存allocate()方法的结果,我们可以将结果存储在一个新的 DataFrame 中:

 #add new variable called points2 and save results in new DataFrame
df. assign (points2 = df.points * 2 )

#view new DataFrame
print (df_new)

   points assists rebounds points2
0 25 5 11 50
1 12 7 8 24
2 15 7 10 30
3 14 9 6 28
4 19 12 6 38
5 23 9 5 46
6 25 9 9 50
7 29 4 12 58

名为df_new的新 DataFrame 现在包含我们创建的point2列。

示例 2:将多个新变量分配给 DataFrame

以下代码演示了如何使用allocate()方法将三个新变量添加到 DataFrame 中:

 #add three new variables to DataFrame and store results in new DataFrame
df_new = df. assign (points2 = df. points * 2 ,
                   assists_rebs = df. assists + df. rebounds ,
                   conference = ' Western ')

#view new DataFrame
print (df_new)

   points assists rebounds points2 assists_rebs conference
0 25 5 11 50 16 Western
1 12 7 8 24 15 Western
2 15 7 10 30 17 Western
3 14 9 6 28 15 Western
4 19 12 6 38 18 Western
5 23 9 5 46 14 Western
6 25 9 9 50 18 Western
7 29 4 12 58 16 Western

请注意,DataFrame 中添加了三个新列。

注意:您可以在此处找到 pandas allocate()方法的完整文档。

其他资源

以下教程解释了如何使用 pandas 中的其他常用功能:

如何在Pandas中使用describe()函数
如何在 Pandas 中使用 idxmax() 函数
如何将函数应用于 Pandas 中的选定列

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注