簡體   English   中英

查找熊貓dataFrame

[英]Looking up Pandas dataFrame

我已經通過閱讀文本文件創建了一個數據框。 我想知道特定列中是否存在很少的值,如果確實存在,我想打印整行。

這是我的輸入文件(analyte_map.txt):

Analyte_id    mass    Intensity   
A34579        101.2    786788
B12345        99.2     878787
B943470       103.89   986443
C12345        11.2      101

這是我的代碼:

import pandas as pd
map_file="analyte_map.txt"
array=['A34579','B943470','D583730']
analyte_df=pd.read_table(map_file,sep="\t")
for value in array:
    if analyte_df.lookup([value],['Analyte_id']):
        print '%s\t%s'%(analyte_df['mass'],analyte_df['Intensity'])

您可以對isin使用boolean indexing

array=['A34579','B943470','D583730']
print (df[df.analyte_id.isin(array)])
  analyte_id    mass  Intensity
0     A34579  101.20     786788
2    B943470  103.89     986443

另外,如果僅需要一些列,請使用ix

array=['A34579','B943470','D583730']
print (df.ix[df.analyte_id.isin(array), ['mass','Intensity']])
     mass  Intensity
0  101.20     786788
2  103.89     986443

使用.query()方法:

In [9]: look_up=['A34579','B943470','D583730']

In [10]: df.query('Analyte_id in @look_up')
Out[10]:
  Analyte_id    mass  Intensity
0     A34579  101.20     786788
2    B943470  103.89     986443

In [11]: df.query('Analyte_id in @look_up')[['mass','Intensity']]
Out[11]:
     mass  Intensity
0  101.20     786788
2  103.89     986443

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM