在pandas数据框中,我有一个字段& amp;'这应该由长度为495的列表填充。是否有一种熊猫式的方法来快速过滤这个长度,这样所有的行都有字段& amp;是不是等于495掉线?
我试过
df[len(df['amp']) == 495]
并且返回了
KeyError: False
提前致谢。
答案 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]