【问题标题】:Delete Rows from a pandas dataframe if matching strings exceed a certain value如果匹配字符串超过某个值,则从 pandas 数据框中删除行
【发布时间】:2018-03-10 02:48:06
【问题描述】:

我有一个下面给出的数据框:

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"

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

如果最后一列中的值匹配的次数多于某个数字,我想删除一行。例如,在上述数据框的情况下,“是”出现超过五次,所以我只想保留前五行并删除其他包含“是”的剩余行。最后一列中的“否”也是如此。

【问题讨论】:

    标签: python pandas dataframe


    【解决方案1】:

    全能的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
    

    【讨论】:

    • 这太完美了!
    猜你喜欢
    • 1970-01-01
    • 2018-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-15
    • 2018-01-21
    • 2011-10-02
    • 1970-01-01
    相关资源
    最近更新 更多