Добавление данных из фрейма данных в список - «строковые индикаторы должны быть целыми числами» в pandas - PullRequest
0 голосов
/ 30 января 2020

Интересно, не могли бы вы помочь? По сути, я должен преобразовать строки из этого информационного кадра в список, и это зависит от того, какие значения в определенном столбце больше 0. Вот что я сделал до сих пор:

import pandas as pd
houseprices = pd.read_csv('https://tf-assets-prod.s3.amazonaws.com/tf-curric/data-science/houseprices.csv')

Я получу эту ошибку :

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-41-5bd425210138> in <module>()
      1 houses_with_porches = []
      2 for house in houseprices:
----> 3   if house['openporchsf'] > 0:
      4     houses_with_porches.append(house)

TypeError: string indices must be integers

Это сбивает меня с толку, потому что когда я конвертирую столбец с pd.to_numeric и помещаю его в for для l oop, я получаю ту же ошибку. Я также пробовал зачистки и пробелы, и исходный столбец выглядит как целые числа, поэтому я не уверен в том, что я делаю неправильно.

1 Ответ

0 голосов
/ 30 января 2020

Когда вы перебираете DataFrame, вы просто возвращаете имена столбцов. Это может сбивать с толку. Таким образом, вы пытаетесь проиндексировать строку, когда вы делаете house['openporchsf'].

Вместо этого:

houses_with_porches = []
for idx,house in houseprices.iterrows():
    if house['openporchsf'] > 0:
        houses_with_porches.append(house)

Если я могу сделать предложение, вы можете wi sh чтобы сохранить ваши данные в другом, меньшем DataFrame, например:

houses_with_porches = houseprices[houseprices['openporchsf'] > 0]
...