列表理解 - Select 基于变量的列
List Comprehension - Select Columns based on a Variable
我的数据框是 ELA 和 Math 列的汇编。我最终想删除其中一个主题的列集,因为我允许用户输入选择一个主题。
我正在尝试使用列表理解来为数据框分配任何具有所选主题名称的列。一个细微差别是,在 ELA 和数学选择中有两列应该保持不变,'Proficiency Category Math' 和 'Proficiency Category ELA'。
关于如何使用列表理解来完成此操作的想法?
输入:
ELA Score Math Score ELA Goal Math Goal Proficiency ELA Proficiency Math
1 4 6 7 3 5
输出:(subject_selection = 'Math')
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
您需要将列的 name 与要包含的列的 name 进行比较,就像您为subject_selection
。换句话说,你做了 subject_selection = 'Math'
,而不是 subject_selection = df[['Math Score', 'Math Goal']]
。同样,你应该这样做:
x = 'Proficiency Category Math'
y = 'Proficiency Category ELA'
我的数据框是 ELA 和 Math 列的汇编。我最终想删除其中一个主题的列集,因为我允许用户输入选择一个主题。
我正在尝试使用列表理解来为数据框分配任何具有所选主题名称的列。一个细微差别是,在 ELA 和数学选择中有两列应该保持不变,'Proficiency Category Math' 和 'Proficiency Category ELA'。
关于如何使用列表理解来完成此操作的想法?
输入:
ELA Score Math Score ELA Goal Math Goal Proficiency ELA Proficiency Math
1 4 6 7 3 5
输出:(subject_selection = 'Math')
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
您需要将列的 name 与要包含的列的 name 进行比较,就像您为subject_selection
。换句话说,你做了 subject_selection = 'Math'
,而不是 subject_selection = df[['Math Score', 'Math Goal']]
。同样,你应该这样做:
x = 'Proficiency Category Math'
y = 'Proficiency Category ELA'