#python #pandas
#python #pandas
Вопрос:
Я получаю следующую ошибку в строке темы (пожалуйста, смотрите скриншот, прикрепленный для получения подробной информации) при попытке отфильтровать столбцы из фрейма данных:
Ни один из [Index([«a’,’c»], dtype=’object’)] не находится в [столбцах]
Вот мой код:
seleted_columns_final = "'a','c'"
df_final = df[[str(seleted_columns_final)]]
print(df_final)
Тестовый фрейм данных выглядит следующим образом:
row1 = {'a':5,'b':6,'c':7,'d':'A'}
row2 = {'a':8,'b':9,'c':10,'d':'B'}
row3 = {'a':11,'b':12,'c':13,'d':'C'}
df = pd.DataFrame([row1,row2,row3])[enter image description here][2]
Комментарии:
1.
seleted_columns_final = ['a', 'c']
df_final = df[seleted_columns_final]
2. Я спрашиваю, почему у вас есть 2 строки,
'a'
и'c'
, завернутые в строку,"'a','c'"
, которые вы затем вызываетеstr()
снова? У @panktijk есть правильный способ для этой конструкции, но я думаю, что это может быть проблемой X <-> Y. Имена ваших столбцов должны представлять собой список фактических имен столбцов в виде строк, а не в виде отдельной строки.3. Большое спасибо. Простите мое невежество, я только начал с Python
Ответ №1:
Вы объявили seleted_columns_final как строку («‘a’, ‘c'») и снова преобразовали ее в string? Я предполагаю, что вы хотите составить список выбранных столбцов в виде списка и создать фрейм данных, используя этот список.
Попробуй:
seleted_columns_final= ['a','c']
df_final = df[seleted_columns_final]
print(df_final)
Вывод:
a c
0 5 7
1 8 10
2 11 13