#python #pandas #dataframe #slice
#python #pandas #фрейм данных #срез
Вопрос:
У меня есть фрейм данных со многими столбцами, и я хочу создать таблицу с одним согласованным столбцом и двумя другими столбцами, которые меняются в каждом цикле.
Проблема в том, что первый шаг нарезки завершается неудачно, и мне не удается создать этот новый фрейм данных с 3 столбцами.
#list of pairs of the columns i'm interested in for each loop
cols_of_interest=[['col1', 'col2'],['col3','col4']]
for i in cols_of_interest:
table=df[df[['col_not_from_list',i[0],i[1]]]]
table = table.dropna(how='any',axis=0)
...
—-> 7 таблица= df[df[[‘col_not_from_list’,i[0],i[1]]]]
Ошибка значения: логический массив, ожидаемый для условия, а не float64
В более старых сообщениях, связанных с этой же ошибкой, упоминается, что версия pandas может быть проблемой, но я не думаю, что это так (поскольку эти сообщения опубликованы несколько лет назад). Кроме того, я нашел совет по использованию маски вместо этого, но я не понимаю, почему нарезка таким образом не сработает.
Моя конечная цель: создать фрейм данных внутри цикла с тремя столбцами: согласованный два других из списка.
Ответ №1:
Изменить на
cols_of_interest=[['col1', 'col2'],['col3','col4']]
for i in cols_of_interest:
table = df[['col_not_from_list'] i]
table = table.dropna(how='any',axis=0)