如果匹配的字符串超过特定值,则从pandas数据框中删除行

时间:2018-03-09 18:46:56

标签: python pandas dataframe

我有一个数据框如下:

ID   PROD   QTY   PRICE   NAME
1     G      2     120    "Yes"   
2     B      5     150    "Yes"
3     S      2     80     "Yes"
4     T      5     300    "Yes"
1     G     -2     120    "Yes"   
2     B     -5     150    "Yes"
3     S      2     80     "No"
4     T      5     300    "No"
1     G     -2     120    "No"   
2     B     -5     150    "No"
3     S      2     80     "No"
4     T      5     300    "No"
1     G     -2     120    "No"   
2     B     -5     150    "No"

我看了很多问题,但大多数都是数值,而且找不到可以解决下面问题的问题,

如果最后一列中的值匹配的次数超过某个数字,我想删除一行。例如,如果上面的数据帧是"是"存在超过五次,所以我只想保留前五行并删除其他包含"是"的行。同样的情况是"否"在最后一栏。

1 个答案:

答案 0 :(得分:2)

全能的groupby来救援 -

df.groupby('NAME').head(5)

    ID PROD  QTY  PRICE NAME
0    1    G    2    120  Yes
1    2    B    5    150  Yes
2    3    S    2     80  Yes
3    4    T    5    300  Yes
4    1    G   -2    120  Yes
6    3    S    2     80   No
7    4    T    5    300   No
8    1    G   -2    120   No
9    2    B   -5    150   No
10   3    S    2     80   No