2015-10-08 4 views
5

Я хотел бы спросить вопрос, который является продолжением на эту тему:Возврат одного значения ячейки из панды DataFrame

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 [ДФ [ '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

Смежные вопросы