#python #pandas
#python #pandas
Вопрос:
Вопрос эффективности здесь. Иногда я хочу запустить .loc
и просмотреть определенные столбцы после этого. Я всегда делал это следующим образом
p = df[(df.x==1)]
p(['x','y'])
Это вернет ячейки со значением 1
из столбца x
, а затем подмножит фрейм данных, чтобы просмотреть только столбцы x
и y
. Есть ли способ сделать это в одной строке без присвоения переменной? Вещи, которые я пробовал, включают
df[(df.x==1)].columns(['x','y'])
df[(df.x==1),['x','y'])
Я часто этим занимаюсь и был бы рад, если бы мог сделать это одной строкой кода. Спасибо!
Ответ №1:
Не связывайте свой индекс. Вместо l используйте loc
df.loc[df.x==1, ['x','y']]
Общий синтаксис
df.loc[index_slice, column_slice]
Ответ №2:
Вы можете отфильтровать определенные столбцы фрейма данных, разделив его списком имен столбцов, например df[['col1', 'col']]
. Итак, в вашем примере вы можете сделать это с отфильтрованным фреймом данных:
df[df.x==1][['x', 'y']]