Как подмножество столбцов в той же строке, что и .loc в pandas

#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']]