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

Python中如何批量筛选DataFrame同前缀行及简化标记列代码?

问题解答

一、简洁创建'Declined Or Hired'列

你原来的代码需要逐个枚举所有符合条件的完整字符串,确实繁琐。用str.startswith()方法直接判断字符串开头,一行代码就能搞定:

df['Declined Or Hired'] = df['(Declined - Reason) Or Hire'].str.startswith("Offer Declined -").astype(str)

如果需要给不符合条件的行设置默认值(比如空字符串或0),可以用numpy.where:

import numpy as np
df['Declined Or Hired'] = np.where(df['(Declined - Reason) Or Hire'].str.startswith("Offer Declined -"), '1', '')

这种写法不用罗列所有后缀,后续新增以"Offer Declined -"开头的子项时,代码也不用修改,扩展性更强。

二、筛选以指定短语开头的行

同样用str.startswith()做筛选条件,无需逐个指定行:

filtered_df = df[df['(Declined - Reason) Or Hire'].str.startswith("Offer Declined -")]

如果想避免链式赋值警告,用loc写法更严谨:

filtered_df = df.loc[df['(Declined - Reason) Or Hire'].str.startswith("Offer Declined -"), :]

这样就能直接得到所有符合开头条件的行数据。

你原来的实现代码:

df.loc[(df['(Declined - Reason) Or Hire'] == 'Offer Declined - Accepted Another Offer') | (df['(Declined - Reason) Or Hire'] == 'Offer Declined - Company'), 'Declined Or Hired'] ='1'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 16:30:57