pandas:根据总和和平均值过滤掉列

时间:2016-05-26 06:43:05

标签: pandas

我有一个时间序列数据的数据框,其中包含列中的数字数据。在绘制这些数据时,我只想绘制一些被认为不足的系列。这是我如何选择要绘制的列:

df.loc[:,  (df.iloc[-1] >= 100) & (df.sum() >= 1000)]

换句话说,“重要”的标准是一系列中超过1000的值和最近的值的总和至少为100。

然而事实证明这是不够的。我需要的是总和超过1000(如前所述),但我希望最后两行(最近两次读数)的平均值超过100.

如何更改上面的过滤器以计算平均值?

在:

date           A    B    C   D
2016-04-01    80  235   99   0
2016-04-02    85  295  153  14
2016-04-03   111  363  224  14
2016-04-04   111  379  296  50
2016-04-05    11   51   29   5

输出:

date           B    C
2016-04-01   235   99
2016-04-02   295  153
2016-04-03   363  224
2016-04-04   379  296
2016-04-05    51   29

1 个答案:

答案 0 :(得分:4)

您只需更改切片(df.iloc[-2:])并致电.mean()

df.loc[:, (df.sum() >= 1000) & (df.iloc[-2:].mean() >= 100)]

(你的例子中似乎有一个错误。最后一行的输入和输出是不同的。)

相关问题