我有一个包含值[apple,items]的列表或数组,并且我想要结果df,其中column('c')具有相同的列表/数组值。
在下面假设,例如:A可以是列表/数组/ str,结果df是基于A中的值与df'c'列进行比较
例如:
#create a feature_name to column index mapping
column_mapping = dict((name, i) for i, name, in enumerate(feature_names))
#get the submatrices
group1_column_indexes = [column_mapping[feat] for feat in group1]
group1_feature_vector_train = feature_vector_train[:,group1_column_indexes] #all rows, but only group1 columns
group2_column_indexes = [column_mapping[feat] for feat in group2]
group2_feature_vector_train = feature_vector_train[:,group2_column_indexes]
df
A = [apple,items]
最终df
a b c
0 10 13 items
1 9 12 testcase
2 8 11 apple
3 7 10 apple
4 6 9 test
5 5 8 items
我尝试使用布尔索引,但无法成功
答案 0 :(得分:0)
您应该可以使用以下方法解决此问题:
df['Status'] = df['c'].isin(A)
这应该添加一个名为Status的列,当C列的行是apple或items时为True,否则为False。
答案 1 :(得分:0)
您要使用pd.Series.isin()
并将结果作为布尔掩码传递以过滤原始数据帧:
A = ['apples','items']
df_final = df[df['c'].isin(A)]
答案 2 :(得分:0)
您创建一个布尔值:
selection = df['c'].isin(A)
,然后从中获取最终的df:
Final_df = df[selection]