Как я могу сохранить только те строки из фрейма данных, столбцы которых имеют значения из списка?

#python #pandas #dataframe

#python #панды #фрейм данных

Вопрос:

У меня есть pr2 фрейм данных, загруженный из CSV:
фрейм данных

И у меня есть список costs_pr2 :
список

Я хотел сохранить только строки, которые имеют значения из costs_pr2 столбца «затраты».

Я попробовал это:

 pr2 = pr2[~pr2.costs.isin(costs_pr2)]
  

Но ничего не изменилось pr2 .
Что я делаю не так?

Ответ №1:

Вы можете использовать query для достижения своей цели:

 costs_pr2 = ['a','b','c']
new_dataframe = pr2.query("costs in @costs_pr2",inplace=False)
  

В противном случае вы могли бы напрямую:

 pr2.query("costs in @costs_pr2",inplace=True)
  

Комментарии:

1. Что такое «затраты»? Int или строка?

2. Я хотел добавить, что может случиться так, что для строковых значений вам нужно будет добавить дополнительную цитату, например: df.query(‘col == «val»‘)