在Pandas DataFrame中基于现有的列创建一个新的列,可以通过多种方式实现,常见的方法包括:
- 使用apply函数
- 使用assign函数
- 直接通过索引创建新列
下面分别介绍三种方法的详细步骤和实例说明。
使用apply函数
apply函数可以对DataFrame的某一列进行遍历和操作,具体步骤如下:
- 定义一个操作函数。
- 使用apply函数将操作函数应用于DataFrame的某一列,得到一个Series对象。
- 将Series对象作为新列添加到DataFrame中。
实例:
假设有如下的DataFrame:
import pandas as pd
df = pd.DataFrame({'A':[1,2,3],'B':[4,5,6]})
print(df)
输出:
A B
0 1 4
1 2 5
2 3 6
现要在该DataFrame中添加一列C,其值为A列与B列之和,操作步骤如下:
- 定义操作函数sumAB:
def sumAB(row):
return row['A'] + row['B']
- 使用apply函数将操作函数应用于DataFrame的A列和B列:
df['C'] = df.apply(sumAB, axis=1)
- 查看结果:
print(df)
输出:
A B C
0 1 4 5
1 2 5 7
2 3 6 9
使用assign函数
assign函数可以在不修改原始DataFrame的情况下添加一个新列,具体步骤如下:
- 定义一个操作函数。
- 使用assign函数添加新列,将操作函数应用于DataFrame的某一列。
实例:
继续假设有如下的DataFrame:
import pandas as pd
df = pd.DataFrame({'A':[1,2,3],'B':[4,5,6]})
print(df)
输出:
A B
0 1 4
1 2 5
2 3 6
现要在该DataFrame中添加一列C,其值为A列与B列之和,操作步骤如下:
- 定义操作函数sumAB:
def sumAB(df):
return df['A'] + df['B']
- 使用assign函数添加新列C,将操作函数应用于DataFrame的A列和B列:
df = df.assign(C=sumAB)
- 查看结果:
print(df)
输出:
A B C
0 1 4 5
1 2 5 7
2 3 6 9
直接通过索引创建新列
可以直接通过索引向DataFrame中添加新列,具体步骤如下:
- 定义一个操作函数。
- 通过DataFrame的索引方式添加新列并将操作函数应用于DataFrame的某一列。
实例:
继续假设有如下的DataFrame:
import pandas as pd
df = pd.DataFrame({'A':[1,2,3],'B':[4,5,6]})
print(df)
输出:
A B
0 1 4
1 2 5
2 3 6
现要在该DataFrame中添加一列C,其值为A列与B列之和,操作步骤如下:
- 定义操作函数sumAB:
def sumAB(df):
return df['A'] + df['B']
- 直接通过索引添加新列C,将操作函数应用于DataFrame的A列和B列:
df['C'] = sumAB(df)
- 查看结果:
print(df)
输出:
A B C
0 1 4 5
1 2 5 7
2 3 6 9
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:在Pandas DataFrame中基于现有的列创建一个新的列 - Python技术站