#python-3.x #pandas #dataframe #csv #typeerror
#python-3.x #pandas #dataframe #csv #ошибка типа
Вопрос:
Я создал pandas.core.frame.Фрейм данных, использующий pandas для работы с файлом csv. В этом csv-файле есть столбец с названиями предприятий, столбцы с городом этих предприятий и многое другое.
import pandas as pd
csv_data = pd.read_csv('cb_sample.csv')
Я заинтересован в создании списка из csv_data всех названий компаний, которые расположены в Нью-Йорке. Я попытался выполнить приведенный ниже код:
names = [obj['city'] for obj in csv_data if obj['city'] == 'New York']
print(names)
Это привело к ошибке типа: строковые индексы должны быть целыми числами.
Мне нужно создать список имен, чтобы я мог работать с ними для простого проекта flask.
Ответ №1:
Здесь вам не нужен явный цикл, и именно он вызывает ошибку.
for x in y
где y
dataframe перебирает имена столбцов (так же, как for k in dict
перебирает ключи).
Вместо этого просто отфильтруйте строки по городу, затем используйте tolist
:
names = obj[obj['city'] == 'New York']['names'].tolist()
Также можно выполнить с помощью .loc
:
names = obj.loc[obj['city'] == 'New York', 'names'].tolist()