#python #pandas
#python #pandas
Вопрос:
Я работаю над файлом с некоторым df, но почему-то я не могу получить доступ к df с примененным фильтром (я хочу видеть данные только для определенной страны — Польши)
Я подумал, что, возможно, python не читает заголовок таким, какой он есть, но когда я набрал df.columns, он показал мне это имя столбца в списке
и вот как я хотел вернуть его:
def test():
file = pd.read_csv(r'C:Usersmydeskoptest.csv', encoding = "ISO-8859-1")
test = file.loc[file.loc['Country Name'] == 'Poland']
return test
print(test())
И это ошибка:
KeyError: 'the label [Country Name] is not in the [index]'
Комментарии:
1. Так и должно быть
file.loc[file['Country Name'] == 'Poland']
, вам не нужно несколько вложенныхloc
файлов.2. Можете ли вы попробовать
test = file[file['Country Name'] == 'Poland']
вместоtest = file.loc[file.loc['Country Name'] == 'Poland']
3. спасибо, но то же самое: KeyError: ‘Название страны’
4. Можете ли вы отредактировать свой пост и скопировать / вставить вывод
file.columns
перед запуском какой-либо фильтрации? В именах столбцов могут быть дополнительные пробелы. Если это так, попробуйте:file = file.rename(columns=str.strip)
сразу после того, как вы прочитаете его из своего csv.5. мой плохой! я изменил имена столбцов для целей форума, и именно поэтому ваше решение не сработало — спасибо!
Ответ №1:
Если я правильно понимаю, это должно сработать: вместо :
test = file.loc[file.loc['Country Name'] == 'Poland']
сделайте это:
test = file.loc[file['Country Name'] == 'Poland']
С помощью функции ‘loc’ вы будете выбирать строки, а через имя столбца внутри вы указываете условие для выбора этих строк. Это должно выполнить работу, я считаю.
Комментарии:
1. спасибо, но я все еще получил KeyError: ‘Название страны’… например, я понятия не имею, почему то же самое работает в любом другом файле, но не в этом случае..
2. Хорошо, вам нужна эта кодировка ISO?
3. да, я думаю, что мне нужно, потому что ранее была какая-то ошибка с отображением данных, однако я удалил это, и я вижу ту же ошибку ключа
4. мой плохой! я изменил имена столбцов для целей форума, и именно поэтому ваше решение не сработало — спасибо!