我有一个像这样的pandas DataFrame:
Loc WT Var Change AO DP VAF IntEx Upstream Downstream Individual
0 10 A T C>T 40 30000 0.003 Exon ATGCTCGTAG AGTCGATCGT 1
1 10 A T C>T 40 30000 0.003 Exon ATGCTCGTAG AGTCGATCGT 1
2 10 A T C>T 40 30000 0.003 Exon ATGCTCGTAG AGTCGATCGT 1
3 10 A T C>T 40 30000 0.003 Exon ATGCTCGTAG AGTCGATCGT 1
我正在尝试选择DataFrame的一部分,其中'Downstream'列中字符串的第一个字母是特定字母,但是当我尝试使用以下内容执行此操作时,我遇到了一个键错误:
a = allVariants[allVariants['Downstream'[0] == 'G']]
答案 0 :(得分:1)
您正在寻找的条件是 -
df[df.Downstream.str[0].eq('G')]
或者,
df[df.Downstream.str.startswith('G')]
示例数据 -
df
Loc WT Var Change AO DP VAF IntEx Upstream Downstream \
0 10 A T C>T 40 30000 0.003 Exon ATGCTCGTAG AGTCGATCGT
1 10 A T C>T 40 30000 0.003 Exon ATGCTCGTAG AGTCGATCGT
2 10 A T C>T 40 30000 0.003 Exon ATGCTCGTAG GTCGATCGTA
3 10 A T C>T 40 30000 0.003 Exon ATGCTCGTAG GTCGATCGTA
Individual
0 1
1 1
2 1
3 1
df[df.Downstream.str[0].eq('G')]
Loc WT Var Change AO DP VAF IntEx Upstream Downstream \
2 10 A T C>T 40 30000 0.003 Exon ATGCTCGTAG GTCGATCGTA
3 10 A T C>T 40 30000 0.003 Exon ATGCTCGTAG GTCGATCGTA
Individual
2 1
3 1
工作原理 -
Downstream
是一个字符串列。您可以使用.str
访问者访问第一个字符 - df.Downstream.str[0]
。
使用'G'
或eq
将此值与==
进行比较,以获取布尔值掩码。
最后使用掩码索引到df
。
或者,调用.str.startswith
会将第一个字符与传递的字符('G'
)进行比较,以返回类似于第一种情况的布尔掩码。