我的数据框是ELA和Math列的汇编。我最终想放弃一个主题'一组列,因为我允许用户输入选择一个主题。
我尝试使用列表推导来为数据框分配具有所选主题名称的任何列。一个细微差别是在ELA和数学选择中有两列应该是恒定的,'熟练类别数学'和#'熟练程度类别ELA'。
关于如何使用列表推导来实现这一目标的想法?
输入:
ELA Score Math Score ELA Goal Math Goal Proficiency ELA Proficiency Math
1 4 6 7 3 5
输出:(使用subject_selection ='数学')
Math Score Math Goal Proficiency ELA Proficiency Math
4 7 3 5
我目前的代码:
col_list = df.columns
subject_selection = 'Math' ###User types in desired subject
x = df['Proficiency Category Math']
y = df['Proficiency Category ELA']
df = [cols for cols in col_list if subject_selection in cols or cols == x or cols == y]
我收到的错误是:
TypeError: invalid type comparison
答案 0 :(得分:2)
您需要将列的名称与要包含的列的名称进行比较,就像您对subject_selection
所做的那样。换句话说,您执行了subject_selection = 'Math'
,而不是subject_selection = df[['Math Score', 'Math Goal']]
。同样,你应该这样做:
x = 'Proficiency Category Math'
y = 'Proficiency Category ELA'