Python 如何在DataFrame中选择具有多个值的行
我有一个如下所示的数据帧:Python 如何在DataFrame中选择具有多个值的行,python,pandas,dataframe,jupyter-notebook,Python,Pandas,Dataframe,Jupyter Notebook,我有一个如下所示的数据帧: Entry ribosome protein PDB 0 P46782 s5 4ug0;4v6x;5a2q;5aj0;5flx;5lks;5oa3;5t2c;5vyc;6... 1 P0A7W3 s5 5wf0;5wfs;6awb;6awc;6awd 2 A2RNN6 s5 5myj 3 Q5SHQ5
Entry ribosome protein PDB
0 P46782 s5 4ug0;4v6x;5a2q;5aj0;5flx;5lks;5oa3;5t2c;5vyc;6...
1 P0A7W3 s5 5wf0;5wfs;6awb;6awc;6awd
2 A2RNN6 s5 5myj
3 Q5SHQ5 s5 1fjg;1fka;1hnw;1hnx;1hnz;1hr0;1i94;1i95;1i96;1...
4 Q2YYL4 s5 6fxc
5 A0QSG6 s5 5o5j;5o61;5xyu;5zeb;5zep;5zeu;6dzi;6dzk
6 P33759 s5 5mrc;5mre;5mrf`
df[df['PDB'].str.contains(';')]
我需要提取列“PDB”中有多个条目的行。
例如,在本例中,我希望数据框显示没有“6fxc”和“5myj”(单个条目)的行,但只显示多个PDB,如“5mrc;5mre;5mrf”
怎么做
这只是包含此类数据的巨大数据帧的一个片段,我需要以这种方式进行过滤。可能是您可以使用
split
和len
进行过滤:
df[df['PDB'].str.split(';').str.len()>1]
在注释之后,您还可以尝试简单地计数代码>如下所示:
df[df['PDB'].str.count(";")>0]
您可以省略PDB
字段不包含的行代码>如下所示:
Entry ribosome protein PDB
0 P46782 s5 4ug0;4v6x;5a2q;5aj0;5flx;5lks;5oa3;5t2c;5vyc;6...
1 P0A7W3 s5 5wf0;5wfs;6awb;6awc;6awd
2 A2RNN6 s5 5myj
3 Q5SHQ5 s5 1fjg;1fka;1hnw;1hnx;1hnz;1hr0;1i94;1i95;1i96;1...
4 Q2YYL4 s5 6fxc
5 A0QSG6 s5 5o5j;5o61;5xyu;5zeb;5zep;5zeu;6dzi;6dzk
6 P33759 s5 5mrc;5mre;5mrf`
df[df['PDB'].str.contains(';')]