python - 我想根据某些条件在我的数据框中添加一列
问题描述
如果 Price=1500 那么 RevisedPrice=Price+(Price*0.15) else if Price=800 then RevisedPrice=Price+(Price*0.10) else RevisedPrice=Price+(Price*0.5)
下面是我的代码------------
df['RevisedPrice']=[x+(0.15*x) if x==1500 else x+(0.10*x) if x==800 else x+(0.05*x) for x in df['Price']]
我得到我的列值RevisedPrice=Price+(Price*0.5)
解决方案
您可以使用apply
pandas 数据框的功能来达到预期的效果。这是您可能想尝试的代码:
def transform(row):
if row["Price"] == 1500:
scale = 0.15
elif row["Price"] == 800:
scale = 0.10
else:
scale = 0.5
return row["Price"] + row["Price"] * scale
df["RevisedPrice"] = df.apply(transform, axis=1)
当你执行>>>print(df.head())
输出:
Date Event Price RevisedPrice
0 11/8/2011 Music 1500 1725.0
1 11/9/2011 Poetry 800 880.0
2 11/10/2011 Music 1500 1725.0
3 11/11/2011 Comedy 1200 1800.0
4 11/12/2011 Poetry 800 880.0
推荐阅读
- javascript - 未捕获的 SyntaxError:EXT JS 中的令牌无效或意外
- react-native - 获得屏幕“搜索”的“组件”和“儿童”道具。你只能通过其中之一
- webpack - Webpack 和生成器
- terminal - 在 Zsh 中将 stderr 变为红色的代码错误?
- c - 如何正确将 strcat 用于 char 数组?
- javascript - 如何使用 dojo 在选择中设置当前值和名称?
- javascript - Javascript数组减少返回零而不是未定义
- sql - SQL Join 同一张表
- wordpress - 子主题导致严重错误。使WP下降
- sql - 在 postgres 中为市场编写查询需要帮助