对齐pandas中的数据帧,使数据在行中匹配

2024-04-27 23:36:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我要对齐我的数据

我现在是这样的:

Yan     TNSeq   Kato    Eco-GeneOrth    Essential

accA    accA    accA        accA        accA    
accB    accB    accB        accB        accB    
accC    accC    accC        accC        accC    
accD    accD    accD        accD        accD    
aceF    acpP    acpP        alaS        aceF    
acpP    acpS    acpS        argA        acpP    
acpS    adk     adk         argB        acpS    

我想要的是:

^{pr2}$

我试过用reindex和sort,但是没有运气

我是个笨蛋

基本上,我想要的是将前4列与基本列对齐或排序,以便行中的数据匹配。在


Tags: 数据yanessentialecoadktnseqacefaccc
2条回答

IIUC使用^{}并使用arg axis=0传递列,以针对该列创建整个df的布尔掩码:

In [49]:
df[df.eq(df['Essential'],axis=0)]

Out[49]:
    Yan TNSeq  Kato Eco-GeneOrth Essential
0  accA  accA  accA         accA      accA
1  accB  accB  accB         accB      accB
2  accC  accC  accC         accC      accC
3  accD  accD  accD         accD      accD
4  aceF   NaN   NaN          NaN      aceF
5  acpP   NaN   NaN          NaN      acpP
6  acpS   NaN   NaN          NaN      acpS

更新:

In [120]: df[df.apply(lambda x: x['Essential'] == x, axis=1)]
Out[120]:
    Yan TNSeq  Kato Eco-GeneOrth Essential
0  accA  accA  accA         accA      accA
1  accB  accB  accB         accB      accB
2  accC  accC  accC         accC      accC
3  accD  accD  accD         accD      accD
4  aceF   NaN   NaN          NaN      aceF
5  acpP   NaN   NaN          NaN      acpP
6  acpS   NaN   NaN          NaN      acpS

试试这个:

^{pr2}$

数据:

In [87]: df
Out[87]:
    Yan TNSeq  Kato Eco-GeneOrth Essential
0  accA  accA  accA         accA      accA
1  accB  accB  accB         accB      accB
2  accC  accC  accC         accC      accC
3  accD  accD  accD         accD      accD
4  aceF  acpP  acpP         alaS      aceF
5  acpP  acpS  acpS         argA      acpP
6  acpS   adk   adk         argB      acpS

相关问题 更多 >