您正在比较两个完整的列,这是不明确的.
相反,您要做的是比较数据帧中每一行的值.
示例df:
df = pd.DataFrame(columns=['open', 'close'], data=[[100, 105], [200, 195], [300, 301], [400, 404], [500, 499]])
例如,您可以像这样使用.itertuples():
for row in df.itertuples():
print(row.close > row.open)
然而,DataFrame的优点在于,您可以同时计算多个值,并且通常不希望遍历您的数据.
df['labels'] = df.apply(lambda row: 'green' if row["close"] >= row["open"] else 'red', axis=1)
在这里我创建了一个新的çolumn‘Labels’,并根据OPEN和CLOSE的值将值设置为‘green’或‘red
最终的df如下所示:
open close labels
0 100 105 green
1 200 195 red
2 300 301 green
3 400 404 green
4 500 499 red
第三个选项是使用np.where
,如下所示:
import numpy as np
df['labels'] = np.where(df["close"] >= df["open"], 'green', 'red')