Pandas Dataframe删除索引条件为true的项目

时间:2016-04-16 11:32:09

标签: python pandas

我有一个pandas数据框,其中包含Dates&价格

现在我有一个与Dates相同长度Dates的Pandas系列,带有Dates和一个True或False布尔值,表示我是否应该删除该点。

我想从条件为真的rawdata中删除项目

outlier_idx

Date
1990-01-29    False
1990-01-30     True
1990-01-31     True
1990-01-02    False
1990-02-02    False

clean_data = raw_data.copy() # 

clean_data.drop(outlier_idx.data == True)

返回未包含在轴

中的标签[False]

1 个答案:

答案 0 :(得分:1)

而不是删除,只选择那些应该保留的行:

In [83]: idx
Out[83]:
Date
1990-01-29    False
1990-01-30     True
1990-01-31     True
1990-01-02    False
1990-02-02    False
Name: Cond, dtype: bool

In [84]: df
Out[84]:
            Price
Date
1990-01-29  11.11
1990-01-30  12.01
1990-01-31   3.65
1990-01-02   0.99
1990-02-02  99.99

正如@Sergey Bushmanov已在他的评论中回答:

In [85]: clean = df[~idx]

In [86]: clean
Out[86]:
            Price
Date
1990-01-29  11.11
1990-01-02   0.99
1990-02-02  99.99

或者像这样:

In [87]: clean = df[idx == False]

In [88]: clean
Out[88]:
            Price
Date
1990-01-29  11.11
1990-01-02   0.99
1990-02-02  99.99