我有一个pandas DataFrame,我想从中删除行,其中特定列中字符串的长度大于2.
我希望能够做到这一点(每this answer):
df[(len(df['column name']) < 2)]
但我得到错误:
KeyError: u'no item named False'
我究竟做错了什么?
(注意:我知道我可以使用df.dropna()来删除包含任何NaN的行,但是我没有看到如何根据条件表达式删除行.)
解决方法:
当你执行len(df [‘column name’])时,你只得到一个数字,即DataFrame中的行数(即列本身的长度).如果要对列中的每个元素应用len,请使用df [‘column name’].map(len).所以试试吧
df[df['column name'].map(len) < 2]