python中assign用法

python中assign用法

python中assign用法

在Python的Pandas库中,assign 是一个非常有用的函数,它允许我们向DataFrame添加新的列。assign 函数通常用于数据处理和数据分析的过程中,它可以让我们快速地创建新的列,而不改变原始的DataFrame。在本文中,我们将通过一系列的示例来详细介绍assign函数的用法。

示例1:添加单列

import pandas as pd

# 创建一个DataFrame
df = pd.DataFrame({'A': range(1, 6), 'B': range(10, 15)})
print("原始DataFrame:")
print(df)

# 使用assign添加一列
df_new = df.assign(C=lambda x: x['A'] + x['B'])
print("\n添加一列后的DataFrame:")
print(df_new)
Python

执行结果:

原始DataFrame:
   A   B
0  1  10
1  2  11
2  3  12
3  4  13
4  5  14

添加一列后的DataFrame:
   A   B   C
0  1  10  11
1  2  11  13
2  3  12  15
3  4  13  17
4  5  14  19

示例2:同时添加多列

# 使用assign同时添加多列
df_new = df.assign(C=lambda x: x['A'] + x['B'], D=lambda x: x['A'] * x['B'])
print("同时添加多列后的DataFrame:")
print(df_new)
Python

执行结果:

同时添加多列后的DataFrame:
   A   B   C   D
0  1  10  11  10
1  2  11  13  22
2  3  12  15  36
3  4  13  17  52
4  5  14  19  70

示例3:使用已有列进行计算

# 使用已有列进行计算
df_new = df.assign(C=df['A'] ** 2)
print("使用已有列进行计算后的DataFrame:")
print(df_new)
Python

执行结果:

使用已有列进行计算后的DataFrame:
   A   B   C
0  1  10   1
1  2  11   4
2  3  12   9
3  4  13  16
4  5  14  25

示例4:使用外部值

# 使用外部值
external_values = range(20, 25)
df_new = df.assign(C=external_values)
print("使用外部值后的DataFrame:")
print(df_new)
Python

执行结果:

使用外部值后的DataFrame:
   A   B   C
0  1  10  20
1  2  11  21
2  3  12  22
3  4  13  23
4  5  14  24

示例5:链式调用

# 链式调用
df_new = (df
          .assign(C=lambda x: x['A'] + x['B'])
          .assign(D=lambda x: x['C'] + 1))
print("链式调用后的DataFrame:")
print(df_new)
Python

执行结果:

链式调用后的DataFrame:
   A   B   C   D
0  1  10  11  12
1  2  11  13  14
2  3  12  15  16
3  4  13  17  18
4  5  14  19  20

示例6:使用匿名函数

# 使用匿名函数
df_new = df.assign(C=lambda x: (x['A'] * 2).sum())
print("使用匿名函数后的DataFrame:")
print(df_new)
Python

执行结果:

使用匿名函数后的DataFrame:
   A   B   C
0  1  10  30
1  2  11  30
2  3  12  30
3  4  13  30
4  5  14  30

示例7:条件赋值

# 条件赋值
df_new = df.assign(C=lambda x: ['small' if a < 3 else 'large' for a in x['A']])
print("条件赋值后的DataFrame:")
print(df_new)
Python

执行结果:

条件赋值后的DataFrame:
   A   B      C
0  1  10  small
1  2  11  small
2  3  12  large
3  4  13  large
4  5  14  large

示例8:插入时间序列

import pandas as pd

# 创建一个时间序列
time_series = pd.date_range('2024-01-01', periods=5)

# 插入时间序列
df_new = df.assign(Date=time_series)
print("插入时间序列后的DataFrame:")
print(df_new)
Python

执行结果:

插入时间序列后的DataFrame:
   A   B       Date
0  1  10 2024-01-01
1  2  11 2024-01-02
2  3  12 2024-01-03
3  4  13 2024-01-04
4  5  14 2024-01-05

示例9:结合apply函数使用

# 结合apply函数使用
df_new = df.assign(C=df.apply(lambda row: row['A'] + row['B'], axis=1))
print("结合apply函数使用后的DataFrame:")
print(df_new)
Python

执行结果:

结合apply函数使用后的DataFrame:
   A   B   C
0  1  10  11
1  2  11  13
2  3  12  15
3  4  13  17
4  5  14  19

示例10:在assign中定义多个新列

# 在assign中定义多个新列
df_new = df.assign(C=df['A'] + 10, D=df['B'] * 2)
print("在assign中定义多个新列后的DataFrame:")
print(df_new)
Python

执行结果:

在assign中定义多个新列后的DataFrame:
   A   B   C   D
0  1  10  11  20
1  2  11  12  22
2  3  12  13  24
3  4  13  14  26
4  5  14  15  28

以上示例展示了assign函数在添加新列、进行列间计算、链式操作、条件赋值以及与其他Pandas函数结合使用时的多样性和灵活性。通过这些示例,我们可以看到assign是如何帮助我们在数据处理过程中轻松添加和计算新的列,而不影响原始DataFrame的结构。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程