检查无效观察
Check for invalid observation
我需要检查并删除那些在表位序列(DF 中的列)中包含任何非特定氨基酸字母(即 B、J、X 或 Z)的观察结果。
表位序列是数据框中的一列,其值类似于下面给出的样本。我需要检查该序列是否包含字母 B、J、X、Z,如果是,则删除所有相应的记录。
表位序列:
ACIIERKNRGELEYT
CDLNENQTWVDNGC
CASQEFDYEFDDVNE
DDDSYTTKRKF
我目前的代码是单独检查每个代码,这意味着要编写 4 行代码。有没有更好的方法来做到这一点,即使用 OR 运算符将所有 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)
我需要检查并删除那些在表位序列(DF 中的列)中包含任何非特定氨基酸字母(即 B、J、X 或 Z)的观察结果。
表位序列是数据框中的一列,其值类似于下面给出的样本。我需要检查该序列是否包含字母 B、J、X、Z,如果是,则删除所有相应的记录。
表位序列:
ACIIERKNRGELEYT
CDLNENQTWVDNGC
CASQEFDYEFDDVNE
DDDSYTTKRKF
我目前的代码是单独检查每个代码,这意味着要编写 4 行代码。有没有更好的方法来做到这一点,即使用 OR 运算符将所有 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)