我有一个DataFrame
包含股票价值的。
它看起来像这样:
>>>Data Open High Low Close Volume Adj Close Date
2013-07-08 76.91 77.81 76.85 77.04 5106200 77.04
当我尝试使用以下 if 语句创建有条件的新列时:
Data['Test'] =Data['Close'] if Data['Close'] > Data['Open'] else Data['Open']
我收到以下错误:
Traceback (most recent call last):
File "<pyshell#116>", line 1, in <module>
Data[1]['Test'] =Data[1]['Close'] if Data[1]['Close'] > Data[1]['Open'] else Data[1]['Open']
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
然后我用a.all()
:
Data[1]['Test'] =Data[1]['Close'] if all(Data[1]['Close'] > Data[1]['Open']) else Data[1]['Open']
结果是['Open']
选择了整个Column。我没有得到我想要的条件,即每次选择['Open']
和['Close']
列之间的最大值。
任何帮助表示赞赏。
谢谢。