使用列表理解遍历熊猫数据框

时间:2020-11-03 20:51:01

标签: python pandas

我正在尝试遍历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只是数据框的另一列,甚至不涉及该行代码。我在这里做错了什么?有一个更好的方法吗?预先感谢!

2 个答案:

答案 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'])