Как удалить строки во фрейме данных с циклом for - PullRequest
0 голосов
/ 08 июля 2019

Итак, я хочу удалить несколько строк на основе условия.

Я попытался удалить, как описано на веб-сайте.

Мой фрейм данных выглядит следующим образом:

jobs
   job_name  number
0  job1      163
1  job2      200
2  job3      3

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

my_jobs = [job2, job3]

Мое состояние:

for job in jobs['job_name']:
    if job not in my_jobs:
        jobs_df.drop(job, axis=0)     

И я хочу, чтобы мой фрейм данных выглядел так:

jobs
   job_name  number
1  job2      200
2  job3      3

Однако я получаю:

keyerror: "['jo1'] не найден на оси"

Что я делаю не так?

1 Ответ

1 голос
/ 08 июля 2019

Я полагаю, что причиной ошибки является то, что она ищет имя задания в индексе фрейма данных, который имеет только [0, 1, 2], вы можете установить столбец имя задания в качестве индекса:

jobs_df.set_index("job_name", inplace=True)

и затем выполните:

my_jobs = ["job2", "job3"]
for job in jobs_df.index:
    if job not in my_jobs:
        jobs_df.drop(job, axis=0, inplace=True)
jobs_df.reset_index(inplace=True)

, но более простой и быстрый способ сделать это - просто сделать:

jobs_df = jobs_df[jobs_df["job_name"].isin(my_jobs)]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...