使用列表理解循环熊猫数据帧



我试图循环遍历pandas数据帧,并为每一行添加一个名为upper的新列,其值应根据基于同一行其他两列值的简单条件进行设置。

我试着用列表理解来做到这一点:

df['upper'] = [df['Close'][i] if df['Close'][i] > df['Open'][i] else df['Open'][i] for i in df]

但这行代码给了我以下错误:

raise KeyError(key) from err KeyError: 'Date'

其中Date只是数据帧的另一列,甚至不涉及该行代码。我在这里做错了什么?有更好的方法吗?提前感谢!

pandas是一个高级库,在DataFrame上循环是一种糟糕的做法

df['upper'] = df[['Close', 'Open']].max(axis=1)
import numpy as np
df['upper'] = np.maximum(df['Close'], df['Open'])

最新更新