我有一个元素列表。我想同时删除其中三个元素。
我尝试对事物进行列表理解。 log_r.columns
是pd.DataFrame()
中列名称的数组。看起来像这样:
array(['MBI10', 'SAX', 'PX', 'CAC40', 'CRBEX', 'SOFIX', 'DAX', 'SBITOP',
'BELEX15', 'UAX', 'SASX10', 'AEX', 'BET', 'BUX'], dtype=object)
。
我要删除'AEX'
,'DAX'
和'CAC40'
emerging_names = log_r.columns.values[log_r.columns.values != ['AEX','DAX','CAC40']]
FutureWarning: elementwise comparison failed; returning scalar instead, but in the future will perform elementwise comparison
感谢您的帮助!
答案 0 :(得分:2)
将Index.isin
与~
的反转掩码一起使用:
emerging_names = log_r.columns.values[~log_r.columns.isin(['AEX','DAX','CAC40'])]
或结合过滤使用列表理解:
emerging_names = [x for x in log_r.columns if x not in ['AEX','DAX','CAC40']]
或者如果排序列名称没有问题,请使用Index.difference
:
emerging_names = log_r.columns.difference(['AEX','DAX','CAC40'])