2013-07-02 2 views
2

Это кажется мне очень странным, но, может быть, есть какое-то объяснение. У меня есть фрейм данных с идентификаторами.Pandas value_counts не найден?

>df 

Id Value  Date 
1  2   2012/03/04 
2  12  2012/03/05 
1  3   2012/03/06 
1  9   2012/03/07 
5  66  2012/02/08 

Когда я делаю:

df.Id.value_counts() 

я получаю:

1 3 
2 1 
5 1 

Но когда я делаю:

df[df["Id"]==1] 

я получаю:

Empty Dataframe 
Columns: [Id, Value, Date] 
Index= [] 

Я просто где-то идиот? Я уверен, что это именно то, что я делаю,

+1

Возможно ваш 'столбец Id' фактически состоящий из строк, а не INTS. Что возвращает 'map (type, df.Id)'? – DSM

+0

Вы получили его снова. DSM, ты качаешь! –

+0

Но нет. Я преобразовал столбец в float, и он все еще не находит значение, которое увеличивается в 40 раз. –

ответ

0
df = DataFrame({'Id':[1,2,1,1,6], "Value":[2,12,3,9,99], 
    "Date":['2012/03/04','2012/03/05','2012/03/06','2012/03/07','2012/03/08',]}) 

df[df["Id"]==1] 
Out[24]: 
    Date  Id Value 
0 2012/03/04 1  2 
2 2012/03/06 1  3 
3 2012/03/07 1  9 

DSM является правильным только проблема, что имеет смысл в том, что у вас есть строки в Id. Тест с:

df.Id.dtype 
Out[27]: dtype('int64') 

если вы ул:

df[df["Id"]=="1"] 

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

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