在Pandas数据框架中添加新的变量

在Pandas数据框架中添加新的变量

在这篇文章中,我们来学习如何使用assign()函数和方括号向pandas DataFrame添加一个新的变量。

Pandas是一个Python软件包,提供各种数据结构和操作,用于处理数字数据和时间序列。它主要因导入和分析数据更容易而流行。而Pandas DataFrame是一个潜在的异质性的二维大小可变的表格数据结构,具有标记的轴(行和列)。数据框架是一种二维数据结构,其中数据以表格的形式被组织在行和列中。数据、行和列是Pandas DataFrame的三个主要组成部分。这里我们将看到两种不同的方法来向我们的pandas Dataframe添加新的变量。

方法1:使用pandas.DataFrame.assign()方法

该方法用于为一个DataFrame创建新的列。它返回一个包含所有原始列和新列的新对象。如果有现有的列,如果它们被重新分配,它们将被覆盖。

语法: DataFrame.assign(**kwargs)

  • kwargsdict of {str:callable或Series}:关键词被用来命名列。如果这些值是可调用的,它们将被计算并分配给DataFrame上的新列。可调用的值不能修改输入的DataFrame。如果数值不是可调用的(例如,如果它们是一个系列,标量或数组),它们很容易被分配。

返回:一个新的DataFrame,包括新的列和所有现有的列。

示例

在这个例子中,我们导入了NumPy和panda的软件包,我们设置了种子,这样每次都会生成相同的随机数据。为三支球队生成了一个有10个球队得分的数据集,范围从30到100。assign()方法用于在Dataframe中创建另一列,我们提供了一个关键词名称,这将是我们要为其分配数据的列的名称。在分配数据之后,一个新的Dataframe被创建,除了现有的列之外还有一个新的列。

# import packages
import numpy as np
import pandas as pd
 
# setting a seed
np.random.seed(123)
# creating a dataframe
df = pd.DataFrame({'TeamA': np.random.randint(30, 100, 10),
                   'TeamB': np.random.randint(30, 100, 10),
                   'TeamC': np.random.randint(30, 100, 10)})
print('Before assigning the new column')
 
print(df)
# using assign() method to add a new column
scores = np.random.randint(30, 100, 10)
 
df2 = df.assign(TeamD=scores)
 
print('After assigning the new column')
 
print(df2)

输出:

在Pandas数据框架中添加新的变量

方法2:使用[]添加一个新列

在这个例子中,我们没有使用assign()方法,而是使用方括号([])来为现有的Dataframe创建一个新的变量或列。语法是这样的。

dataframe_name['column_name'] = data
column_name is the name of the new column to be added in our dataframe.

示例

我们得到的输出与我们使用assign()方法时相同。在这个例子中创建了一个名为TeamD的新列,它显示了TeamD中人们的分数。随机数据被创建并分配给Dataframe中的新列。

# import packages
import numpy as np
import pandas as pd
 
# setting a seed
np.random.seed(123)
# creating a dataframe
df = pd.DataFrame({'TeamA': np.random.randint(30, 100, 10),
                   'TeamB': np.random.randint(30, 100, 10),
                   'TeamC': np.random.randint(30, 100, 10)})
print('Before assigning the new column')
 
print(df)
# using [] to add a new column
scores = np.random.randint(100, 150, 10)
 
df['TeamD'] = scores
 
print('After assigning the new column')
 
print(df)

输出:

在Pandas数据框架中添加新的变量

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程