如何使用for循环删除数据帧中的行

2024-09-24 06:33:31 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我想根据一个条件删除一些行。你知道吗

我试图放弃,因为它在网站上解释。你知道吗

我的数据帧如下所示:

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'] not found in axis"

我做错什么了?你知道吗


Tags: 数据nameinnumber网站myjobsnot
1条回答
网友
1楼 · 发布于 2024-09-24 06:33:31

我认为错误的原因是它正在数据帧索引中查找作业名称,该索引只有[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)]

相关问题 更多 >