2015-10-08 299 views
5

返回单个单元格的值我想问一个问题,那就是在这个线程的扩展:从熊猫数据框中

Select rows from a DataFrame based on values in a column in pandas

从该线程的代码列出如下:

import pandas as pd 
import numpy as np 
df = pd.DataFrame({'A': 'foo bar foo bar foo bar foo foo'.split(), 
       'B': 'one one two three two two one three'.split(), 
       'C': np.arange(8), 'D': np.arange(8) * 2}) 
print(df) 
#  A  B C D 
# 0 foo one 0 0 
# 1 bar one 1 2 
# 2 foo two 2 4 
# 3 bar three 3 6 
# 4 foo two 4 8 
# 5 bar two 5 10 
# 6 foo one 6 12 
# 7 foo three 7 14 

print(df.loc[df['D'] == 14]) 

这将产生以下结果:

A B  C D 
7 foo three 7 14 

基于上述代码,我怎样才能返回单个“值”不一排。也就是说,如何返回值'7'或值'foo'而不是整行?

+1

df.loc [DF [ 'd'] = = 14] [COLNAME]或df.loc [DF [ 'd'] == 14] .values [index] –

回答

5

@JonahWilliams接近,这里的工作之一:

import pandas as pd 
import numpy as np 
df = pd.DataFrame({'A': 'foo bar foo bar foo bar foo foo'.split(), 
       'B': 'one one two three two two one three'.split(), 
       'C': np.arange(8), 'D': np.arange(8) * 2}) 

print(df.loc[df['D'] == 14]['A'].index.values) 

>>>[7] 

print(df.loc[df['D'] == 14]['A'].values) 

>>>['foo'] 
+0

太棒了。非常感谢你们两位。 – Nick