2015-04-22 5 views
-2

У меня возникают проблемы с моим словарем.Python Dictionary Data Issue

Я сортирую свои данные на основе столбца cyear, но номер RET остается тем же самым для всех строк, что неверно. I данные верны до кода, который создает dict, и надеялся, что кто-то скажет мне, что здесь происходит.

код я использую для рода для моего словаря:

dict ={} 

for y in df2.cyear.unique(): 

     dict[str(y)]=df2[df2.cyear==y] 

Это пример того, что выходит, когда я добавить строку кода в комментариях:

 year  YM Month  cyear 

41523 2009 200912 12 2009CCC +)

ключ = (2013CCC +), вал = (
Безымянные: 0 Кредит КНР RET TICKER CUSIP ewretd
42371 42371 CCC + 9,15 0,026126 JCP 70816010 0,025242
47038 47038 CCC + 2,60 0,026126 RSH 75043810 0,025242

+2

Что такое df2? что такое cyear? Рассмотрите возможность размещения кода - чтобы мы могли копировать и вставлять и запускать, чтобы воспроизвести. – alfasin

+0

'dict' не является хорошим именем для словаря, поскольку он затеняет функцию [builtin' dict'] (https://docs.python.org/2/library/stdtypes.html#dict). Назовите словарь после того, что он содержит. –

+0

'df2.cyear == y' может быть разрешен либо' 1', либо '0', если он используется как индекс. Какой тип 'dt2'? –

ответ

0

Добавить это внутри for петли и показать образец продукции:

print "key=(%s), val=(%s)" % (str(y), df2[df2.cyear == y]) 

Он должен разъяснить вещи немного. Я подозреваю, что значения str(y) на самом деле не являются уникальными строками, которые вы ожидаете.

+0

Я добавил, что строка кода для моего вопроса и образец вывода находится в описании вопроса выше – QCampbell

+0

Похоже, что сам словарь работает правильно. Проблема связана со значениями, которые вы назначаете клавишам. –

+0

Я просмотрел ключевые значения и обнаружил, что загрузка данных была неправильной, что вызывало проблему. Большое спасибо за Вашу помощь – QCampbell