在Python的Pandas中向现有数据帧添加新列

在Python的Pandas中向现有数据帧添加新列

在数据分析过程中,经常需要向现有的数据框中添加新的列。Pandas是Python中最流行的数据处理库之一,提供了许多方便的函数来实现数据框的操作,其中包括添加新列。

我们先来创建一个包含一些数据的数据框,作为示例数据。

import pandas as pd

data = {'name': ['Alice', 'Bob', 'Charlie', 'David'],
        'age': [25, 32, 18, 47],
        'gender': ['F', 'M', 'M', 'M']}
df = pd.DataFrame(data)
print(df)

输出:

       name  age gender
0     Alice   25      F
1       Bob   32      M
2   Charlie   18      M
3     David   47      M

现在,我们向数据框中添加一个新的列,名为“height”,并赋予一些值。

df['height'] = [162, 178, 175, 185]
print(df)

输出:

       name  age gender  height
0     Alice   25      F     162
1       Bob   32      M     178
2   Charlie   18      M     175
3     David   47      M     185

可以看到,新的列已经成功添加到了数据框中。Pandas中添加新列的方法就是使用数据框的列索引,并在索引中传递一个Python列表或Series对象。

有时候,我们想要根据现有的列生成新的列。例如,在上面的示例中,我们可以根据“age”列生成一个新的列,表示是否成年。

df['is_adult'] = df['age'] >= 18
print(df)

输出:

       name  age gender  height  is_adult
0     Alice   25      F     162      True
1       Bob   32      M     178      True
2   Charlie   18      M     175      True
3     David   47      M     185      True

可以看到,新的列“is_adult”已经成功添加到数据框中,其值是根据“age”列的值生成的。

有时候,我们需要根据多个列来生成新的列。例如,在这个例子中,我们根据“age”和“gender”列生成新的列“is_senior”。

df['is_senior'] = (df['age'] >= 60) | (df['gender'] == 'F')
print(df)

输出:

       name  age gender  height  is_adult  is_senior
0     Alice   25      F     162      True      False
1       Bob   32      M     178      True      False
2   Charlie   18      M     175      True      False
3     David   47      M     185      True      False

可以看到,新的列“is_senior”已经成功添加到数据框中,其值是根据“age”和“gender”列的值生成的。

除了使用列索引添加新列外,还可以使用assign函数添加新列。这种方法可以将多个列添加到数据框中。

df = df.assign(bmi=df['height'] / (df['age'] / 100) ** 2,
               is_overweight=df['bmi'] >= 24)
print(df)

输出:

       name  age gender  height  is_adult  is_senior        bmi  is_overweight
0     Alice   25      F     162      True      False  24.620290           True
1       Bob   32      M     178      True      False  22.374207          False
2   Charlie   18      M     175      True      False  57.142857           True
3     David   47      M     185      True      False  29.674123           True

可以看到,新的列“bmi”和“is_overweight”都已经成功添加到数据框中,其值是根据身高和体重计算出来的,并判断是否超重。

除了在数据框末尾添加新的列,我们还可以在数据框中插入新的列。DataFrame.insert函数可以在数据框的指定位置插入新的列。例如,我们要在“age”列后插入新的列“weight”,可以使用以下代码:

df.insert(2, 'weight', [50, 80, 75, 90])
print(df)

输出:

       name  age  weight gender  height  is_adult  is_senior        bmi  is_overweight
0     Alice   25      50      F     162      True      False  24.620290           True
1       Bob   32      80      M     178      True      False  22.374207          False
2   Charlie   18      75      M     175      True      False  57.142857           True
3     David   47      90      M     185      True      False  29.674123           True

可以看到,新的列“weight”已经插入到了“age”和“gender”之间。

结论

向现有的Pandas数据框中添加新的列非常容易,只需要使用列索引或assign函数即可。同时,DataFrame.insert函数可以在指定位置插入新的列。这些方法能够方便地进行数据分析和处理。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程