Python 如何根据条目的长度筛选数据帧

Python 如何根据条目的长度筛选数据帧,python,pandas,dataframe,Python,Pandas,Dataframe,在熊猫数据帧中,我有一个字段“amp”,该字段应该由长度为495的列表填充。是否有一种方法可以快速过滤此长度,以便删除字段“amp”不等于495的所有行 我试过了 df[len(df['amp']) == 495] 这件事又回来了 KeyError: False 提前感谢。试试这个: df[df['amp'].str.len() == 495] 演示: 如果您特别需要len,那么@MaxU的答案是最好的 对于更一般的解决方案,可以使用级数法 df[df['amp'].map(len) ==

在熊猫数据帧中,我有一个字段“amp”,该字段应该由长度为495的列表填充。是否有一种方法可以快速过滤此长度,以便删除字段“amp”不等于495的所有行

我试过了

df[len(df['amp']) == 495]
这件事又回来了

KeyError: False
提前感谢。

试试这个:

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


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

对于更一般的解决方案,可以使用级数法

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

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

,即使元素是
列表,而不是
str
,也可以执行此操作。他们可能应该更新文档,表明它可以用于支持
len
的任何类型。From:“计算序列/索引中每个字符串的长度”。@SethMMorton,请随意创建一个“Pull请求”(只需将其标记为“DOC:…”)-这将非常有用:)哇,这太棒了,谢谢@SethMMorton的答案更为笼统(并教会了我如何使用地图),所以我选择了它,但非常感谢@MaxU你能切换
=
==
,目的是保留495的唯一数组。请不要在答案中编辑代码,因为它可能与作者的意图相冲突,而是对答案进行注释,以要求澄清或更正(如果需要)。您可以切换!=到==,目的是唯一保留495个数组。谢谢
df[df['amp'].map(len) == 495]