如何为DataFrame生成4个价差列:基于FarmPrice计算各零售价差
实现DataFrame价差列的批量新增
你可以通过以下两种方式快速生成所需的价差列并追加到原DataFrame中:
方法一:批量循环处理(适合列数较多场景)
先定义零售列和目标新列的对应关系,再通过循环完成计算:
# 假设你的DataFrame名为df retail_new_pair = { 'AtlantaRetail': 'PriceSpread_ATL', 'ChicagoRetail': 'PriceSpread_CHI', 'LosAngelesRetail': 'PriceSpread_LA', 'NewYorkRetail': 'PriceSpread_NY' } # 循环生成每一个价差列 for retail_col, new_col in retail_new_pair.items(): df[new_col] = (df[retail_col] - df['FarmPrice']) / df['FarmPrice']
方法二:直接赋值(适合列数较少场景)
用assign方法直接指定每个新列的计算逻辑,一步完成追加:
df = df.assign( PriceSpread_ATL=(df['AtlantaRetail'] - df['FarmPrice']) / df['FarmPrice'], PriceSpread_CHI=(df['ChicagoRetail'] - df['FarmPrice']) / df['FarmPrice'], PriceSpread_LA=(df['LosAngelesRetail'] - df['FarmPrice']) / df['FarmPrice'], PriceSpread_NY=(df['NewYorkRetail'] - df['FarmPrice']) / df['FarmPrice'] )
两种方式都会直接把4个价差列追加到原DataFrame的末尾,完全符合你要求的计算规则。
内容的提问来源于stack exchange,提问作者wowzer
相关产品推荐
相关产品推荐

