У меня есть следующий код:
def joinOneRow(ser, df):
temp = df[df.index ==
max(df.index[df.index <=
ser.index[0]])]
return temp.values[0][0], temp.values[0][1];
def joinWithData(df1, df):
askTemp, bidTemp = zip(*df1.apply(joinOneRow, args = (df)))
return askTemp, bidTemp
Индекс в df1, а df - это отметка времени.У df есть 2 столбца.Проблема в том, что я хотел бы сделать следующую строку:
askTemp, bidTemp = zip(*trades.apply(ef.joinWithData, args = ob))
У меня ошибка:
"Значение истинности для DataFrame неоднозначно. Используйте a.empty, a.bool (), a.item (), a.any () или a.all (). "
Обновление для трассировки:
Traceback (most recent call last):
File "<ipython-input-5-f74779a26578>", line 1, in <module>
askTemp, bidTemp = zip(*trades1.apply(ef.joinWithData, args = ob1))
File "C:\Anaconda\lib\site-packages\pandas\core\frame.py", line 6003, in
apply
kwds=kwds)
File "C:\Anaconda\lib\site-packages\pandas\core\apply.py", line 29, in
frame_apply
args=args, kwds=kwds)
File "C:\Anaconda\lib\site-packages\pandas\core\apply.py", line 39, in
__init__
self.args = args or ()
File "C:\Anaconda\lib\site-packages\pandas\core\generic.py", line 1573,
in __nonzero__
.format(self.__class__.__name__))
ValueError: The truth value of a DataFrame is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().