我有一个DataFrame,想要根据索引名称删除元素
col1 col2
entry_1 10 11
entry_2_test 12 13
entry_3 14 15
entry_4_test 16 17
基本上我想要删除以_test结尾的项目。
我知道如何选择它们:
df.filter(like='_test', axis=0)
col1 col2
entry_2_test 12 13
entry_4_test 16 17
然后我就可以实际获取这些索引:
df.filter(like='_test', axis=0).index
entry_2_test
entry_4_test
最后,我可以删除那些索引,并使用筛选后的数据框覆盖原始数据框。
df = df.drop(df.filter(like='_test', axis=0).index)
df
col1 col2
entry_1 10 11
entry_3 14 15
我的问题是,这是否是正确的过滤方式,或者有更有效的专用函数来完成此操作?
df = df[~df.index.str.endswith('_test')]
这样做就可以了。 - ALollz