pandas是一个用于数据处理和分析的Python库,它提供了丰富的功能来操作数据。

在pandas中,我们可以使用多种方法为DataFrame新增一列。本文介绍10种不同的操作来为pandas DataFrame新增一列:
import pandas as pd
data = {'A': [1, 2, 3], 'B': [4, 5, 6]}
df = pd.DataFrame(data)
# 直接赋值法
df['C'] = [7, 8, 9]
df

import pandas as pd
data = {'A': [1, 2, 3], 'B': [4, 5, 6]}
df = pd.DataFrame(data)
# 使用assign方法
df = df.assign(C=[7, 8, 9])
df

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

insert
方法可以在指定位置插入新列。
import pandas as pd
data = {'A': [1, 2, 3], 'B': [4, 5, 6]}
df = pd.DataFrame(data)
# 使用join方法
new_column = pd.Series([7, 8, 9], name='C')
df = df.join(new_column)
print(df)

import pandas as pd
data = {'A': [1, 2, 3], 'B': [4, 5, 6]}
df = pd.DataFrame(data)
# 使用concat方法
new_column = pd.DataFrame({'C': [7, 8, 9]})
df = pd.concat([df, new_column], axis=1)
print(df)

import pandas as pd
data = {'A': [1, 2, 3], 'B': [4, 5, 6]}
df = pd.DataFrame(data)
# 使用apply方法
def add_new_column(row):
if row['A']>2:
return row['A']**2 + row['B']*100
else:
return row['A']-row['B']
df['C'] = df.apply(add_new_column, axis=1)
print(df)
本方法是万能方法,经常用到,在经过复杂运算并赋值到新的一列的场景使用尤其多。
import pandas as pd
data = {'A': [1, 2, 3], 'B': [4, 5, 6]}
df = pd.DataFrame(data)
# 使用apply方法结合lambda函数
df['C'] = df.apply(lambda row: row['A'] * 2, axis=1)
print(df)

import pandas as pd
data = {'A': [1, 2, 3], 'B': [4, 5, 6]}
df = pd.DataFrame(data)
# 使用query方法
df['C'] = df.query('A > 1')['B']
print(df)

import pandas as pd
# 创建一个DataFrame
data = {'A': [1, 2, 3], 'B': [4, 5, 6]}
df = pd.DataFrame(data)
# 使用loc方法添加新列'C'
df.loc[:, 'C'] = [7, 8, 9]
print(df)
loc
方法用于基于标签选择数据,可以用于添加新列。

import pandas as pd
# 创建两个DataFrame
data1 = {'A': [1, 2, 3], 'B': [4, 5, 6]}
df1 = pd.DataFrame(data1)
data2 = {'C': [7, 8, 9]}
df2 = pd.DataFrame(data2)
# 使用merge方法添加新列'C'
df = pd.merge(df1, df2, left_index=True, right_index=True)
print(df)

merge
方法可以根据指定的键将两个DataFrame合并,用于添加新列。
本文介绍的pandas新增一列常用方法,大家可根据处理数据的实际场景选择适合的方法使用。