【发布时间】:2021-09-02 18:33:05
【问题描述】:
我目前有一个熊猫的数据框,它由两列组成,“索引”和“价格”列,如下所示:
我需要创建一个名为“Log”的新列,我想根据“Price”列中的数据是负数还是正数来执行两个单独的操作。对于积极的行,我需要执行以下操作:
df["Log"] = 10**(df['Price'])
如果“价格”列中的数字为负数,请执行以下操作以获取该单元格的绝对值:
df["Log"] = -10**(df['Price'].abs())
能否给我看一个python代码,上面的操作可以在原始pandas数据框上执行,最终结果应该如下所示:
我在下面包含了创建原始数据框的代码:
# Create dataframe
cars = {'Index': [1,2,3,4,5,6,7,8,9,10],
'Price': [2.266021, 2.160644, -2.266021, 2.103899, 2.019323, 2.134563, 2.193423, 2.495643, 2.129344, 2.876545]
}
df = pd.DataFrame(cars, columns = ['Index', 'Price'])
print (df)
【问题讨论】:
-
见
np.where()和更复杂的条件操作np.select()。 -
您真的是要对价格求幂并称其为对数吗?这些是彼此的倒数。