Ошибки при зацикливании с помощью iterrows - PullRequest
0 голосов
/ 25 января 2019

У меня есть фрейм данных с 2 столбцами, и я хочу создать 3-й столбец, который возвращает True или False для каждой строки в зависимости от того, содержится ли значение в столбце A в значении в столбце B.

Вот мой код:

C = []

for index, row in df.iterrows():
        if row['A'][index] in row['B'][index]:
                C[index] = True
        else:
                C[index] = False

Я получаю следующие ошибки:

1) TypeError: 'float' object is not subscriptable
2) IndexError: list assignment index out of range

Как я могу решить эти ошибки?

1 Ответ

0 голосов
/ 25 января 2019

Мне кажется, проблема в том, что некоторые значения строки ['A'] или строки ['B'] содержат значения с плавающей запятой.Вот почему, когда вы получаете это значение с плавающей точкой, вы не можете его подписать.В противном случае это будет похоже на [float] [index], что дает ошибку.Вы ожидаете строковое значение там?Вполне возможно, что не все значения имеют одинаковый тип данных во фрейме данных.

Во-вторых, индекс относится к строке, теперь я не понимаю, почему вы используете его таким образом.Для получения дополнительных разъяснений мне нужно взглянуть на эти данные, но то, что кажется возможным, похоже на то, что даже если вы получили значение строки или массива для строки ['A'], которое можно просмотреть, индекс слишком велик.Ибо экс-

row['A'] = "hello"
a  = row['A'][10]

выдаст вам ошибку индекса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...