所以我想根据条件删除一些行。
我尝试删除网站中说明的内容。
我的数据框如下:
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']]”
我在做什么错了?
答案 0 :(得分:1)
我认为错误的原因是它正在寻找仅具有[0,1,2]的数据帧索引中的job_name 您可以将列job_name设置为索引:
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)]