我有一个非常大的数据框,我正在尝试清理。这是一个数据框的示例。从熊猫数据框中删除特定行
[in]: dftrain
[out]:
date store_nbr item_nbr units tavg preciptotal
2012-01-01 1 1 0 42 0.05
2012-01-01 1 2 2 42 0.05
2012-01-01 1 3 0 42 0.05
2012-01-01 1 4 0 42 0.05
2012-01-01 2 1 0 62 0.15
2012-01-01 2 2 0 62 0.15
2012-01-01 2 3 20 62 0.15
2012-01-01 2 4 1 62 0.15
2012-01-01 3 1 0 72 1.05
2012-01-01 3 2 0 72 1.05
2012-01-01 3 3 29 72 1.05
2012-01-01 3 3 0 72 1.05
...(New Day)
date store_nbr item_nbr units tavg preciptotal
2012-01-02 1 1 0 47 0.10
2012-01-02 1 2 0 47 0.10
2012-01-02 1 3 0 47 0.10
2012-01-02 1 4 0 47 0.10
2012-01-02 2 1 0 60 0.0
2012-01-02 2 2 0 60 0.0
2012-01-02 2 3 5 60 0.0
2012-01-02 2 4 0 60 0.0
2012-01-02 3 1 0 67 .23
2012-01-02 3 2 0 67 .23
2012-01-02 3 3 2 67 .23
2012-01-02 3 3 0 67 .23
...
我有一个字典,str_nbr作为key和item_nbr作为我想要保留的存储和项目编号的值。这里是一个示例字典:{'1': [2], '2': [3,4], '3': [3]}
我想要做的是去商店存储和删除所有行的item_nbr不包含作为我的字典的值。因此,在这个例子中,当我已经放弃了不需要的行我会这样...
[in]: dfrain_drop
[out]:
date store_nbr item_nbr units tavg preciptotal
2012-01-01 1 2 2 42 0.05
2012-01-01 2 3 20 62 0.15
2012-01-01 2 4 1 62 0.15
2012-01-01 3 3 29 72 1.05
...(New Day)
date store_nbr item_nbr units tavg preciptotal
2012-01-02 1 2 0 47 0.10
2012-01-02 2 3 5 60 0.0
2012-01-02 2 4 0 60 0.0
2012-01-02 3 3 0 67 .23
那实际上并不是我想要的。我想保留不在我的字典中的值。 – Hound
你的OP说“删除所有不包含item_nbr作为我的字典值”的行。 “如果不包含则删除”是“如果包含则保留”;这也符合您的样本结果。无论如何,你可以通过在'query'中使用'not in'而不是'in'来翻转你所保留的内容。 – cphlewis
我看到你编辑了帖子,但它仍然与上面的评论不一致(并且商店3只保留了item_nbr 3行中的一个)。 – cphlewis