You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于Last_Name长度条件删除Pandas DataFrame行?

问题解决方法

首先修正你原始代码里的小错误:data列表末尾缺少闭合括号,正确定义如下:

data = [['tommy', 'manny'], ['krishan', 'sony'],
       ['nick', 'nady'], ['julie', 'stephen']]

df = pd.DataFrame(data, columns=['First_Name', 'Last_Name'])

你的删除代码无效的核心原因是:len(df['Last_Name'])计算的是整个Last_Name列的总行数,而非每行字符串的长度,导致判断逻辑完全错误。

以下是两种可行的解决方法:

方法一:直接筛选保留符合条件的行(推荐,更简洁)

通过布尔索引直接保留Last_Name长度≥5的行,等价于删除长度<5的行:

df = df[df['Last_Name'].str.len() >= 5]

方法二:使用drop方法实现删除

如果坚持要用drop,需要先通过str.len()获取每行字符串的长度,再生成正确的布尔索引定位要删除的行:

df.drop(df[df['Last_Name'].str.len() < 5].index, inplace=True)

执行上述任意一种方法后,最终的DataFrame会只保留tommy和julie对应的行,符合你的需求。

内容的提问来源于stack exchange,提问作者Qaaqq11282211

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 03:01:13