【问题标题】:Creating a column whose values depend on other columns and the created columns previous values [duplicate]创建其值取决于其他列的列和创建的列以前的值[重复]
【发布时间】:2020-07-04 06:53:07
【问题描述】:
我有一个包含三列名称 A、B、C 的 pandas 数据框,并希望添加具有以下条件的第四列:
注意:prev X = 列 X 的前一个条目
D = IF(A < prev D) and (B > prev D)
THEN A
ELSE prev D
除了使用 for 循环之外,还有其他方法可以使用 pandas 或 numpy 来完成吗?
【问题讨论】:
标签:
python
python-3.x
pandas
numpy
【解决方案1】:
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randint(0,100,size=(10, 4)), columns=list('ABCD'))
df['E'] = np.where((df['A'] < df['D'].shift(1)) &
(df['B'] > df['D'].shift(1)), df['A'], df['D'].shift(1))
显然,这将使第一行始终返回 NaN 的值,而不是 A 或 D 以前的值,因为 df['D'].shift(1) 中的第一个值将是 NaN