微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

根据起始字母从数据框中的列中提取值

如何解决根据起始字母从数据框中的列中提取值

希望大家都过得好。我正在使用 Pandas 和 numpy,我想根据 Dataframe 中的前 3 个字母 (ap.) 提取列值。以下是我的数据框示例。

姓名 数字
橙色 2
苹果 6
Ap.ricot 1
AP.19 1
Juap.rte 3

我试过 df[df['Name'].str.lower().str.contains('ap.',na=False)].Name.unique() 但它并没有完全做到这一点.

输出

['AP.19','Ap.ricot']

理想情况下,输出应该是一个列表,然后我可以将其保存到变量中。此外,这 3 个字母必须在开头并按此顺序排列。

我对 Python 非常陌生,所以请尽可能清楚地解释。谢谢。

解决方法

鉴于帖子中的评论,我相信您可以通过以下方式完成:

ap = [x for x in df['Name'] if x.lower().startswith('ap.')]

如果你不希望有重复,那么你可以使用:

ap = [x for x in df['Name'].unique() if x.lower().startswith('ap.')]
,

这可能对您有所帮助:

final = []


df['NameCopy'] = df['Name'].str.lower()


for index,row in df.iterrows():
   if row['NameCopy'].find('ap.') != -1:
      final += [row['Name']]
   else:
      pass

print(final)
,

试试:

df[df['Name'].str.match('^(ap[.])',case=False)].Name.unique() 

array(['Ap.ricot','AP.19'],dtype=object)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。