Pandas:如何为DataFrame添加新列

作者:菠萝爱吃肉2024.01.17 20:54浏览量:30

简介:在Pandas中,为DataFrame添加新列的方法有多种。本文将介绍几种常见的方法,包括使用`assign`方法、使用`loc`或`iloc`以及使用`apply`函数。

在Pandas中,为DataFrame添加新列有多种方法。下面将介绍几种常见的方法:
1. 使用assign方法
assign方法可以用于在原始DataFrame的基础上添加新列。它将返回一个新的DataFrame,其中包含了原始列和新列。
示例代码:

  1. import pandas as pd
  2. df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
  3. df_new = df.assign(C=[7, 8, 9])
  4. print(df_new)

输出结果:

  1. A B C
  2. 0 1 4 7
  3. 1 2 5 8
  4. 2 3 6 9

2. 使用loc或iloc
通过使用lociloc,我们可以根据位置或标签来选择行,并使用新的数据创建一个新列。
示例代码:

  1. import pandas as pd
  2. df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
  3. df['C'] = [7, 8, 9]
  4. print(df)

输出结果:

  1. A B C
  2. 0 1 4 7
  3. 1 2 5 8
  4. 2 3 6 9

注意:使用lociloc添加新列时,新列的数据必须与DataFrame的长度相匹配,否则会抛出错误。
3. 使用apply函数
apply函数可以将一个函数应用于DataFrame的行或列。我们可以利用这个特性来添加新列,只需将一个返回值的函数应用于每一行即可。
示例代码:

  1. import pandas as pd
  2. df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
  3. def add_column(row):
  4. return row['A'] + row['B'] + 1
  5. df['C'] = df.apply(add_column, axis=1)
  6. print(df)

输出结果:

  1. A B C
  2. 0 1 4 6 # (1+4+1=6)
  3. 1 2 5 8 # (2+5+1=8)
  4. 2 3 6 9 # (3+6+1=9)

注意:使用apply函数添加新列时,需要指定axis=1参数,表示对每一行应用函数。如果不指定该参数,默认情况下会对整个DataFrame应用函数,这可能不是你想要的结果。
总结:在Pandas中为DataFrame添加新列有多种方法,可以根据具体需求选择合适的方法。使用assign方法可以方便地添加新列并返回一个新的DataFrame;使用lociloc可以根据位置或标签选择行并直接赋值;使用apply函数可以将一个函数应用于每一行或每一列来生成新列。在实际应用中,可以根据数据和需求选择合适的方法来处理数据。