【发布时间】:2012-09-20 15:30:09
【问题描述】:
我认为反向/负 dataframe.drop 功能将是一个非常有用的工具。 有没有人克服这个问题?
【问题讨论】:
-
什么意思?你想让它做什么?
-
@BreanBarn:删除不匹配的条件。
我认为反向/负 dataframe.drop 功能将是一个非常有用的工具。 有没有人克服这个问题?
【问题讨论】:
一般来说,我发现自己在获得选择的逆时使用boolean indexing 和波浪号运算符,而不是 df.drop(),尽管当布尔索引用于形成数组时,相同的概念适用于 df.drop要删除的标签。希望对您有所帮助。
In [44]: df
Out[44]:
A B
0 0.642010 0.116227
1 0.848426 0.710739
2 0.563803 0.416422
In [45]: cond = (df.A > .6) & (df.B > .3)
In [46]: df[cond]
Out[46]:
A B
1 0.848426 0.710739
In [47]: df[~cond]
Out[47]:
A B
0 0.642010 0.116227
2 0.563803 0.416422
【讨论】:
如果我没听错的话,你可以通过在索引上使用“isin”进行索引来获得这种效果:
>>> df
A B C
0 0.754956 -0.597896 0.245254
1 -0.987808 0.162506 -0.131674
2 -1.064639 -2.193629 1.814078
3 -0.483950 -1.290789 1.776827
4 -0.191055 -0.461204 0.412220
>>> df[df.index.isin([0, 2, 3])] # Drop rows whose label is not in the set [0, 2, 3]
A B C
0 0.754956 -0.597896 0.245254
2 -1.064639 -2.193629 1.814078
3 -0.483950 -1.290789 1.776827
【讨论】: