Я использую pandas, чтобы прочитать электронную таблицу, а затем использую итерацию, чтобы разделить ее, наряду с несколькими другими операциями. Но затем, когда я пытаюсь использовать метод list.remove () на одном из результирующих кадров данных (даже после преобразования его в список), он выдает следующее:
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
Вот полный код:
def correlationTester2(startSample, minSample):
df = list(pd.read_csv('C:/Users/iijof/Desktop/sheet.csv').values)
df = random.sample(df, len(df))
dfTry = []
dfTest = []
counter = {}
for i in df:
if counter.get(i[9], 0) < startSample:
dfTry.append(i)
counter[i[9]] = counter.get(i[9], 0) + 1
else:
dfTest.append(i)
counter[i[9]] = counter.get(i[9], 0) + 1
tryCopy = list(dfTry)
testCopy = list(dfTest)
for i in counter.keys():
if counter[i] < minSample:
for name in tryCopy:
if name[9] == i:
dfTry.remove(name)
for name in testCopy:
if name[9] == i:
dfTest.remove(name)
return dfTry, dfTest, counter
dfTry, dfTest, counter = correlationTester2(50,100)
Ошибка возникает при запуске через строку dfTry.remove (name). Как это исправить?
Дайте мне знать, если мне нужно предоставить информацию о структуре таблицы, спасибо.
Полная трассировка ошибок:
ValueError Traceback (most recent call last)
<ipython-input-99-de5890bffa67> in <module>()
31 return dfTry, dfTest, counter
32
---> 33 dfTry, dfTest, counter = correlationTester2(50,100)
34
<ipython-input-99-de5890bffa67> in correlationTester2(startSample, minSample)
24 for name in tryCopy:
25 if name[9] == i:
---> 26 dfTry.remove(name)
27 for name in testCopy:
28 if name[9] == i:
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()