基于另一列删除数据帧中的列

2024-05-15 15:53:06 发布

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

我有一个叫乔布斯的数据框

position           software    salary  degree     location    industry
architect          autoCAD     400     masters    london       AEC
data analyst       python      500     bachelors   New York   Telecommunications
personal assistant excel       200     bachelors   London      Media
..... 

我有另一个数据帧叫做“偏好”

name         value
position      2
software      4
salary        3
degree        1
location      3
industry      1  

我想从“jobs”数据框中删除首选值小于2的列,以便


position           software    salary     location    
architect          autoCAD     400        london       
data analyst       python      500        New York   
personal assistant excel       200        London      
..... 

这就是我所拥有的

jobs.drop(list(jobs.filter(preference['value'] < 2), axis = 1, inplace = True)

但它似乎没有放弃(学位和行业)栏。任何帮助都将不胜感激


Tags: 数据newdatajobspositionsoftwarelocationlondon
1条回答
网友
1楼 · 发布于 2024-05-15 15:53:06

这应该适合您:

jobs.drop(preferences.loc[preferences.value < 2, 'name'], axis=1, inplace=True)

这就是您的代码行不起作用的原因:

  • 首先,缺少一个右括号(但我想那只是一个输入错误)
  • filter方法应该应用于preferences,而不是jobs
  • filter并不是您真正想要在这里使用的名称列表:preferences.loc[preferences.value < 2, 'name']返回值为<;2的所有名称的列表
网友
2楼 · 发布于 2024-05-15 15:53:06

我想你的尝试差不多成功了。以下是我所拥有的:

>>>jobs.drop(preference.loc[preference['value'] < 2,'name'], axis=1, inplace=True)

             position software  salary  location
0           architect  autoCAD     400    london
1        data analyst   python     500  New York
2  personal assistant    excel     200    London

相关问题 更多 >