如何根据Name列字符串的末尾两个字符筛选Pandas DataFrame?
按Name列末尾字符筛选Pandas DataFrame行的方法
这事儿很简单,用Pandas里的str.endswith()方法就能轻松搞定,我给你一步步拆解:
第一步:先构造你的DataFrame(还原你给出的示例数据)
首先我们把你提供的数据转换成标准的Pandas DataFrame:
import pandas as pd data = { 'Name': ['ADAMSAE', 'BAKERDE', 'CLARKAE', 'DAVISDE', 'EVANSAE'], 'Sale Value': [1475000, 1412000, 1480450, 1483700, 1285000] } df = pd.DataFrame(data)
第二步:筛选末尾为"AE"的行
直接用str.endswith('AE')判断Name列的字符串是否以指定后缀结尾,再通过布尔索引筛选行:
AE_df = df[df['Name'].str.endswith('AE')] print(AE_df)
运行后输出的结果就是你想要的:
Name Sale Value
0 ADAMSAE 1475000
2 CLARKAE 1480450
4 EVANSAE 1285000
第三步:筛选末尾为"DE"的行
用同样的逻辑处理DE后缀即可:
DE_df = df[df['Name'].str.endswith('DE')] print(DE_df)
输出结果:
Name Sale Value
1 BAKERDE 1412000
3 DAVISDE 1483700
额外小技巧:同时筛选多个后缀
如果之后你需要一次性筛选多个后缀(比如同时获取AE和DE的行),可以把后缀放进元组里传给str.endswith():
combined_df = df[df['Name'].str.endswith(('AE', 'DE'))]
注意事项
如果你的Name列不是字符串类型,可能会触发报错,这时候可以先把列转成字符串类型:
df['Name'] = df['Name'].astype(str)
内容的提问来源于stack exchange,提问作者user18321664
相关产品推荐
相关产品推荐

