检查无效观察



我需要检查并删除表位序列中含有非特异性氨基酸字母(即B,J,X或Z)的无效观察值(DF列)。

表位序列是数据框中的一列,其值与下面给出的样本类似。我需要检查该序列是否包含字母B,J,X,Z,如果是,则删除所有相应的记录。

抗原决定基seq:

ACIIERKNRGELEYT
CDLNENQTWVDNGC
CASQEFDYEFDDVNE
DDDSYTTKRKF

当前的代码,我有每个单独检查,这意味着写4行代码。有没有更好的方法来做到这一点,即所有4行代码在一行使用或操作符?如果是,怎么做?

当前代码:

final_df.drop(final_df[final_df['epit_seq'].str.contains('B')].index, inplace=True)
final_df.drop(final_df[final_df['epit_seq'].str.contains('J')].index, inplace=True)
final_df.drop(final_df[final_df['epit_seq'].str.contains('X')].index, inplace=True)
final_df.drop(final_df[final_df['epit_seq'].str.contains('Z')].index, inplace=True)

由于默认情况下contains允许正则表达式,因此您可以将其缩短为一行,如下所示:

ignore = '|'.join(['B', 'J', 'X', 'A']) # use regular expression with or on substrings
final_df.drop(final_df[final_df['epit_seq'].str.contains(ignore)].index, inplace=True)

相关内容

  • 没有找到相关文章

最新更新