如何在Pandas DataFrame中依据Winner与Host_Country添加Home_Away列
实现方法
没问题,这事儿用pandas的条件判断就能轻松搞定,我给你两种常用方案,你可以根据场景选:
方案一:用numpy.where(推荐,大数据量更高效)
这是最直接的方式,一行代码就能完成列的新增和赋值:
首先确保你已经导入了必要的库:
import pandas as pd import numpy as np
假设你已经有了目标DataFrame(这里先给个示例数据方便你测试):
# 构造示例DataFrame data = { 'Team1': ['Brazil', 'Germany', 'France'], 'Team2': ['Italy', 'Argentina', 'Croatia'], 'Winner': ['Brazil', 'Argentina', 'France'], 'Host_Country': ['Brazil', 'Germany', 'France'] } df = pd.DataFrame(data)
然后执行新增列的代码:
# 新增Home_Away列,根据条件赋值 df['Home_Away'] = np.where(df['Winner'] == df['Host_Country'], 'Home', 'Away')
方案二:用pandas.apply(灵活,适合复杂条件扩展)
如果之后你需要更复杂的判断逻辑,用apply会更灵活,写法如下:
# 用apply遍历每一行进行判断 df['Home_Away'] = df.apply(lambda row: 'Home' if row['Winner'] == row['Host_Country'] else 'Away', axis=1)
最终效果
执行完上面任意一种方法后,你的DataFrame就会包含原四列加上新增的Home_Away列,示例输出如下:
Team1 Team2 Winner Host_Country Home_Away 0 Brazil Italy Brazil Brazil Home 1 Germany Argentina Argentina Germany Away 2 France Croatia France France Home
提示:如果你的数据里有缺失值,记得先处理(比如用
df.dropna()或者填充),避免条件判断出错。
内容的提问来源于stack exchange,提问作者Wak
相关产品推荐
相关产品推荐

