举个栗子:
A B
0 小明 足球
1 小红
2 小刚 篮球
3 小丽 羽毛球
变成
A B C
0 小明 足球 小明喜欢足球
1 小红 小红
2 小刚 篮球 小刚喜欢篮球
3 小丽 羽毛球 小丽喜欢羽毛球
方法1. 使用apply()
和lambda函数
import pandas as pd
df = pd.DataFrame({
'A': ['小明', '小红', '小刚', '小丽'],
'B': ['足球', '', '篮球', '羽毛球'],
})
# 使用apply和lambda函数根据条件创建新列C
df['C'] = df.apply(lambda row: row['A'] + '喜欢' + row['B'] if row['B'] != '' else row['A'], axis=1)
print(df)
方法2. 使用where()
函数
import numpy as np
df['C'] = np.where(df['B'] != '', df['A'] + '喜欢' + df['B'], df['A'])
print(df)
方法3. 使用列表推导式
# 使用列表推导式根据条件创建新列C
df['C'] = [row['A'] + '喜欢' + row['B'] if row['B'] != '' else row['A'] for _, row in df.iterrows()]
print(df)