2016-10-12 5 views
0

У меня есть следующий dataframe в питонаPython - столбец доступа на основе другого значения столбца

+-------+--------+ 
| Value | Number | 
+-------+--------+ 
| true | 123 | 
| false | 234 | 
| true | 345 | 
| true | 456 | 
| false | 567 | 
| false | 678 | 
| false | 789 | 
+-------+--------+ 

Как провести операцию, которая возвращает список всех «Номер», который имеет значение == TRUE

список результата, ожидаемый от приведенных выше таблиц

['123', '345', '456'] 

заранее спасибо!

ответ

1

df.loc[df['Value'],'Number'] должен работать предполагая DTYPE для «Value» является реальными булевыми:

In [68]: 
df.loc[df['Value'],'Number'] 

Out[68]: 
0 123 
2 345 
3 456 
Name: Number, dtype: int64 

выше использует логическое индексирование, здесь булевы значения маски против ФРА.

Если вы хотите list:

In [69]: 
df.loc[df['Value'],'Number'].tolist() 

Out[69]: 
[123, 345, 456] 
+1

Или 'df.loc [df.Value == 'истинный', 'Number'] ', если я не думаю ... –

+0

@JonClements уверен, что если DTYPE это 'str', но это неясно из OP, поскольку оно выглядит как' str', но затем в вопросе, который они сравнивают с TRUE, который в равной степени озадачивает – EdChum

+0

@EdChum, это булевский список, и это работает как шарм! Спасибо! – woodhead92

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