如何使用列表推导式为Pandas DataFrame添加价格更高公司列
使用列表推导式为Pandas DataFrame添加
more_expensive列 原始DataFrame定义
import pandas as pd df = pd.DataFrame({ 'company_1': ['McDonalds', 'Mercedes', 'Apple'], 'company_2': ['Wendys', 'BWM', 'Microsoft'], 'company_1_price' : [3, 1, 4], 'company_2_price' : [2, 8, 3] })
需求说明
为上述DataFrame添加一列more_expensive,该列每行的值为对应行中价格更高的公司名称。
实现代码(列表推导式)
df['more_expensive'] = [ row['company_1'] if row['company_1_price'] > row['company_2_price'] else row['company_2'] for _, row in df.iterrows() ]
逻辑说明
通过df.iterrows()遍历DataFrame的每一行,对每行的company_1_price和company_2_price做比较:
- 若
company_1_price更大,选取company_1的名称 - 否则选取
company_2的名称
将推导得到的结果列表直接赋值给新列more_expensive即可完成需求。
内容的提问来源于stack exchange,提问作者equanimity
相关产品推荐
相关产品推荐

