我有一个字符串列表(pandas系列)和一个pandas数据框。如果列表中存在索引,我想删除数据框的索引(及其行)。如何在没有循环数据框的情况下在pandas中执行此操作,而不对列表中的每个元素使用.drop(' xxx')?
答案 0 :(得分:4)
In [188]: df
Out[188]:
a b c
aa x ww 0.5
bb y tt 0.7
cc z bb 0.9
dd z ww 0.6
ee z nn 0.1
ff x uu 0.3
In [189]: to_drop
Out[189]:
0 bb
1 dd
dtype: object
In [190]: df = df.drop(to_drop)
In [191]: df
Out[191]:
a b c
aa x ww 0.5
cc z bb 0.9
ee z nn 0.1
ff x uu 0.3
或者我们可以使用query
方法:
In [196]: df = df.query("index not in @to_drop")
In [197]: df
Out[197]:
a b c
aa x ww 0.5
cc z bb 0.9
ee z nn 0.1
ff x uu 0.3
答案 1 :(得分:2)
尝试使用布尔值掩码:
df[~df.index.isin(s)]