Pandas中添加列的方法

Pandas中添加列的方法

参考:pandas append column

在数据分析过程中,经常需要对数据集进行修改或增加新的信息。Pandas是Python编程语言中一个强大的数据处理库,它提供了多种方法来修改DataFrame,包括添加新列。本文将详细介绍如何在Pandas的DataFrame中添加列,包括不同的添加方法和场景,以及提供多个示例代码以供参考。

1. 直接赋值添加列

最直接的添加列的方法是通过赋值。如果指定的列名不存在,Pandas会创建一个新列;如果已存在,则会修改该列的内容。

示例代码1:使用直接赋值添加新列

import pandas as pd

# 创建一个DataFrame
df = pd.DataFrame({
    'A': [1, 2, 3],
    'B': [4, 5, 6]
})

# 直接添加新列C
df['C'] = [7, 8, 9]

# 查看结果
print(df)

Output:

Pandas中添加列的方法

2. 使用.insert()方法添加列

使用.insert()方法可以在DataFrame中的指定位置插入一列。这个方法需要指定位置索引、列名和要插入的数据。

示例代码2:使用.insert()在指定位置添加列

import pandas as pd

# 创建一个DataFrame
df = pd.DataFrame({
    'A': [1, 2, 3],
    'B': [4, 5, 6]
})

# 使用.insert()添加新列C到第0列的位置
df.insert(0, 'C', [7, 8, 9])

# 查看结果
print(df)

Output:

Pandas中添加列的方法

3. 使用.assign()方法添加列

.assign()方法可以同时添加多个新列,这个方法不会修改原始DataFrame,而是返回一个新的DataFrame。

示例代码3:使用.assign()添加新列

import pandas as pd

# 创建一个DataFrame
df = pd.DataFrame({
    'A': [1, 2, 3],
    'B': [4, 5, 6]
})

# 使用.assign()添加新列C
new_df = df.assign(C=[7, 8, 9])

# 查看新的DataFrame
print(new_df)

Output:

Pandas中添加列的方法

4. 使用字典扩展法添加列

可以通过将一个字典赋值给DataFrame的新列名来添加列。字典的键将被用作行索引。

示例代码4:使用字典添加列

import pandas as pd

# 创建一个DataFrame
df = pd.DataFrame({
    'A': [1, 2, 3],
    'B': [4, 5, 6]
})

# 使用字典添加新列C
df['C'] = pd.Series({0: 7, 2: 9})

# 查看结果
print(df)

Output:

Pandas中添加列的方法

5. 使用条件表达式添加列

可以根据DataFrame中的数据满足某些条件来创建新列。

示例代码5:根据条件添加新列

import pandas as pd

# 创建一个DataFrame
df = pd.DataFrame({
    'A': [1, 2, 3],
    'B': [4, 5, 6]
})

# 添加新列C,如果列A的值大于1,则C的值为True,否则为False
df['C'] = df['A'] > 1

# 查看结果
print(df)

Output:

Pandas中添加列的方法

6. 使用np.where()添加列

np.where()是NumPy库中的函数,可以根据条件快速创建新列。

示例代码6:使用np.where()根据条件添加列

import pandas as pd
import numpy as np

# 创建一个DataFrame
df = pd.DataFrame({
    'A': [1, 2, 3],
    'B': [4, 5, 6]
})

# 使用np.where()添加新列C
df['C'] = np.where(df['A'] > 1, '大于1', '不大于1')

# 查看结果
print(df)

Output:

Pandas中添加列的方法

7. 使用apply()函数添加列

apply()函数可以对DataFrame中的数据应用一个函数,根据这个函数的返回值来创建新列。

示例代码7:使用apply()添加列

import pandas as pd

# 创建一个DataFrame
df = pd.DataFrame({
    'A': [1, 2, 3],
    'B': [4, 5, 6]
})

# 定义一个简单的函数,如果输入大于1,则返回True,否则返回False
def greater_than_one(x):
    return x > 1

# 使用apply()添加新列C
df['C'] = df['A'].apply(greater_than_one)

# 查看结果
print(df)

Output:

Pandas中添加列的方法

8. 使用map()函数添加列

map()函数可以对Series中的每个元素应用一个函数或字典。

示例代码8:使用map()添加列

import pandas as pd

# 创建一个DataFrame
df = pd.DataFrame({
    'A': [1, 2, 3],
    'B': [4, 5, 6]
})

# 使用map()添加新列C
df['C'] = df['A'].map({1: 'one', 2: 'two', 3: 'three'})

# 查看结果
print(df)

Output:

Pandas中添加列的方法

9. 使用concat()函数横向合并DataFrame

当我们有两个DataFrame并希望按列合并时,可以使用concat()函数。

示例代码9:使用concat()合并DataFrame

import pandas as pd

# 创建两个DataFrame
df1 = pd.DataFrame({
    'A': [1, 2, 3],
    'B': [4, 5, 6]
})
df2 = pd.DataFrame({
    'C': [7, 8, 9],
    'D': [10, 11, 12]
})

# 使用concat()横向合并这两个DataFrame
result = pd.concat([df1, df2], axis=1)

# 查看结果
print(result)

Output:

Pandas中添加列的方法

10. 使用merge()函数添加列

merge()函数可以根据一个或多个键将不同的DataFrame的列合并在一起。

示例代码10:使用merge()根据键合并DataFrame

import pandas as pd

# 创建两个DataFrame
df1 = pd.DataFrame({
    'key': [1, 2, 3],
    'A': [4, 5, 6]
})
df2 = pd.DataFrame({
    'key': [1, 2, 3],
    'B': [7, 8, 9]
})

# 使用merge()根据'key'合并这两个DataFrame
result = pd.merge(df1, df2, on='key')

# 查看结果
print(result)

Output:

Pandas中添加列的方法

以上是在Pandas中添加列的几种常见方法,每种方法都有其适用场景和特点。在实际的数据处理过程中,可以根据需要选择合适的方法来进行数据的整理和分析。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程