Итак, я попытался запустить код, который я разработал ранее, который много раз выполнял использование pandas.Глюч в Пандах? Невозможно перезаписать значение
У моей DataFrame есть собственный индекс (с уникальными строковыми значениями как индекс, представляющий уникальный идентификатор, в данном случае отдельные белки) и имена файлов в качестве столбцов. Затем я использую итеративную процедуру для присвоения подсчетов некоторым ячейкам в фрейме данных. Итак, допустим, у меня есть словарь по умолчанию (my_dict) с заданным abritrary ключом, а значение - [filename, protein, count].
У меня есть отсортированный список имен файлов и отсортированный список белков, называемый all_filenames и all_proteins, соответственно.
import pandas as pd
df = pd.DataFrame(index=all_proteins, columns=all_filenames)
from collections import defaultdict
my_dict = defaultdict(list)
... (Assign values to the dictionary)
for key in my_dict:
my_filename = my_dict[key][0]
my_protein = my_dict[key][1]
my_count = my_dict[key][2]
df[my_filename][my_protein] = my_count
Однако всякий раз, когда я печатаю Д.Ф., это по какой-то причине возвращается полностью пустой в этом случае (с соответствующим индексом и имена файлов), в то время как это не нормально.
Так, чтобы проверить, я следующий на dataframe:
>>> my_filename in df.columns.tolist()
True
>>> my_protein in df.index.tolist()
True
>>> df[my_filename][my_protein]
nan
>>> my_count
3.0
>>> type(my_count)
<type 'numpy.float64'>
>>>
>>> df[my_filename][my_protein] = my_count
>>> df[my_filename][my_protein]
nan
>>>
Я попытался ДФ [my_filename] .ix [my_protein] Д.Ф. [my_filename] .loc [my_protein], и даже создание пользовательский индекс.
Обычно этот сценарий отлично работает. Мои имена файлов обычно бывают примерно такими: beta_maxi070214_08, поэтому нет пробелов или символов ASCII.
Мои имена белков являются стандартными, все имена либо находятся в базе данных UniProtKB, либо являются связями между двумя белками (например, ACACA-ACACB).
Я не уверен, что происходит. У кого-нибудь есть предложения?
EDIT: Вот пример:
>>> my_filename
'beta_orbi080714_05'
>>> my_protein
'ACACA:K1316-ACACA:K1363'
>>> my_count
3.0
>>> type(my_count)
<type 'numpy.float64'>
>>> df[my_filename][my_protein] = my_count
>>> df[my_filename][my_protein]
nan
>>>
Что такое my_column? Это код psuedo или точный код, который вы используете? Где определяется my_column? – Parker
Итак, я в основном импортирую список файлов и извлекаю имена файлов из файлов. В этом случае я протестировал его с файлом, который, как я знал, был в списке. Например, 'beta_maxi070214_08' - это строка и имя файла и является компонентом списка all_filenames (а также в столбце). –
Вы не ответили, что такое my_column? Где это определено? – Parker