[英]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.