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
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]
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
.