How to filter a pandas dataframe based on the length of a entry

后端 未结 2 450
长发绾君心
长发绾君心 2020-12-16 17:39

In a pandas dataframe I have a field \'amp\' that should be populated by a list of length 495. Is there a panda-ic way to quickly filter on this length, such that all rows

相关标签:
2条回答
  • 2020-12-16 18:01

    Try this:

    df[df['amp'].str.len() == 495]
    

    Demo:

    In [77]: df
    Out[77]:
                     a
    0  [1, 2, 3, 4, 5]
    1        [1, 2, 3]
    2             [-1]
    
    In [78]: df.a.str.len()
    Out[78]:
    0    5
    1    3
    2    1
    Name: a, dtype: int64
    
    In [79]: df[df.a.str.len() == 3]
    Out[79]:
                     a
    1        [1, 2, 3]
    
    0 讨论(0)
  • 2020-12-16 18:09

    If you specifically need len, then @MaxU's answer is best.

    For a more general solution, you can use the map method of a Series.

    df[df['amp'].map(len) == 495]
    

    This will apply len to each element, which is what you want. With this method, you can use any arbitrary function, not just len.

    0 讨论(0)
提交回复
热议问题