【发布时间】:2016-10-18 06:14:01
【问题描述】:
我有一个数据框df:
df:
chr gene_name
0 1 ARF3
1 1 ABC
2 1 ARF3, ENSG123
3 1 ENSG,ARF3
4 1 ANG
5 2 XVY
6 2 PQR
7 3 RST
8 4 TAC
还有一个基因列表
gene_list = ['ARF3','ABC' ]
现在,我需要从数据框 (df) 中获取基因名称与 gene_list 中的元素完全匹配的行。
所以,我尝试了:
df2 = df1[df.gene_name.isin(gene_list)]
我检索到:
chr gene_name
0 1 ARF3
1 1 ABC
但我期待的是:
chr gene_name
0 1 ARF3
1 1 ABC
2 1 ARF3, ENSG123
3 1 ENSG,ARF3
所以基本上数据框中的所有行,其中gene_list 中的元素是数据框中gene_name 的子字符串。
我曾想过使用.contains(),如果我正在寻找另一种方式,即数据框中的gene_name 将是gene_list 中元素的子字符串。
感谢所有帮助
【问题讨论】:
标签: python list pandas dataframe