首页 > 解决方案 > 我想根据某些条件在我的数据框中添加一列

问题描述

我想根据提到的条件添加另一列 RevisedPrice看图片

如果 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)

标签: pythonpandas

解决方案


您可以使用applypandas 数据框的功能来达到预期的效果。这是您可能想尝试的代码:

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

推荐阅读