如何根据条目的长度过滤pandas数据帧

时间:2016-10-12 18:53:48

标签: python pandas dataframe

在pandas数据框中,我有一个字段& amp;'这应该由长度为495的列表填充。是否有一种熊猫式的方法来快速过滤这个长度,这样所有的行都有字段& amp;是不是等于495掉线?

我试过

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

并且返回了

KeyError: False

提前致谢。

2 个答案:

答案 0 :(得分:11)

如果您特别需要len,那么@ MaxU的答案是最好的。

对于更通用的解决方案,您可以使用系列的map方法。

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

这会将len应用于每个元素,这就是您想要的。使用此方法,您可以使用任意函数,而不仅仅是len

答案 1 :(得分:6)

试试这个:

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

演示:

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]