Pandas:删除小于2个非零值的项目

问题描述 投票:1回答:1

我有一个数据框,其中包含所有317个不同的ProductCode的连续30个星期的日期,以及下面的每周销售数量列:

Date    ProductCode Weekly_Units_Sold
2015-08-09   1       46.0
2015-08-09   2       46.0
2015-08-09   3       31.0
 ...         ...      ...
2015-08-09   317     47.0
2015-08-16   1       0
2015-08-16   2       46.0
2015-08-16   3       31.0
  ...       ...
2015-08-16  317      75.0
2015-08-23   1       0.0
2015-08-23   2       90.0
2015-08-23   3       175.0
....         ...   
2015-08-23  317      20.0
 ....      ...       ..
2015-12-27   1       0.0
2015-12-27   2       30.0
2015-12-27   3       150.0
....         ...   
2015-12-27  317      20.0

我正在尝试检查每个ProductCode的Weekly_Units_Sold,是否在Weekly_Units_Sold中是否有少于2个非零值的ProductCode;该代码应删除属于检测到的ProductCode的所有行。

假设检测到ProductCode 1,在Weekly_Units_Sold列中只有1个非零值,其他29个值均为0。要从数据框中删除属于ProductCode 1的所有30行,

Date    ProductCode Weekly_Units_Sold
2015-08-09   2       46.0
2015-08-09   3       31.0
 ...         ...      ...
2015-08-09   317     47.0
2015-08-16   2       46.0
2015-08-16   3       31.0
  ...       ...
2015-08-16  317      75.0
2015-08-23   2       90.0
2015-08-23   3       175.0
....         ...   
2015-08-23  317      20.0
 ....      ...       ..
2015-12-27   2       30.0
2015-12-27   3       150.0
....         ...   
2015-12-27  317      20.0

最好的Python方式是什么?谢谢!

我有一个数据帧,其中包含所有317个不同的ProductCode的连续30个每周日期,还具有每周销售量列,如下所示:Date ProductCode Weekly_Units_Sold 2015-08-09 1 ...

python pandas loops iteration rows
1个回答
1
投票

我稍微编辑了您的示例数据,所以我可以构建一个有效的示例。

© www.soinside.com 2019 - 2024. All rights reserved.