我正在尝试遍历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
只是数据框的另一列,甚至不涉及该行代码。我在这里做错了什么?有一个更好的方法吗?预先感谢!
答案 0 :(得分:1)
pandas 是一个高级库,遍历 DataFrame 是一个坏习惯
df['upper'] = df[['Close', 'Open']].max(axis=1)
答案 1 :(得分:0)
import numpy as np
df['upper'] = np.maximum(df['Close'], df['Open'])