gpt4 book ai didi

python - 通过字符串列中的最后 3 个字符选择行

转载 作者:行者123 更新时间:2023-11-28 22:19:43 24 4
gpt4 key购买 nike

我有这个数据框

      name               year ...
0 Carlos - xyz 2019
1 Marcos - yws 2031
3 Fran - xxz 2431
4 Matt - yre 1985
...

我想创建一个名为 type 的新列。如果此人的名字以“xyz”或“xxz”结尾,我希望类型为“big”

所以,它应该是这样的:

      name               year   type
0 Carlos - xyz 2019 big
1 Marcos - yws 2031
3 Fran - xxz 2431 big
4 Matt - yre 1985
...

有什么建议吗?

最佳答案

选项 1
使用 str.contains 生成掩码:

m = df.name.str.contains(r'x[yx]z$')

或者,

sub_str = ['xyz', 'xxz']
m = df.name.str.contains(r'{}$'.format('|'.join(sub_str)))

现在,您可以使用 np.where 创建您的列,

df['type'] = np.where(m, 'big', '')

或者,用loc代替np.where

df['type'] = ''
df.loc[m, 'type'] = 'big'

df
name year type
0 Carlos - xyz 2019 big
1 Marcos - yws 2031
3 Fran - xxz 2431 big
4 Matt - yre 1985

选项 2
作为替代方案,考虑 str.endswith + np.logical_or.reduce

sub_str = ['xyz', 'xxz']
m = np.logical_or.reduce([df.name.str.endswith(s) for s in sub_str])

df['type'] = ''
df.loc[m, 'type'] = 'big'

df
name year type
0 Carlos - xyz 2019 big
1 Marcos - yws 2031
3 Fran - xxz 2431 big
4 Matt - yre 1985

关于python - 通过字符串列中的最后 3 个字符选择行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49524245/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com