2015-11-11 1 views
0

У меня есть файл Excel:цикл по файлам и ошибок данных сообщения панд питона

data = pd.read_excel('.../excel.xlsx') 

VHseqName VHseq  
    nameA  
    nameB 
    nameC 
    nameD 
    nameE 
    nameF 
.... 

У меня есть Fasta файл:

f=open(".../Fastafile.fasta", "r+") 

>nameA 
AAAGGGCCT 
>nameC 
GGTTAACC 
>nameD 
CCCTTAA 
>nameF 
GGGGGAATTCC 
.... 

мой желаемый результат: (для каждого матча имени от первенствует и FASTA, поставить последовательность, следующая строка в том же ряду, но и для столбца «VHseq»)

VHseqName VHseq  
    nameA  AAAGGGCCT 
    nameB 
    nameC  GGTTAACC 
    nameD  CCCTTAA 
    nameE 
    nameF  GGGGGAATTCC 
.... 

мой код:

for vh in data["VHseqName"]: 

position = data.index.get_indexer_for((data[data['VHseqName'] == vh].index)) 

    for line in f: 
    title = line[1:] 
    title = title.rstrip() 
    seq = f.readline() 
     if(title in vh): 
      data['VHseq'][position] = seq 
      break 

мой код иногда работает, а иногда и это не дает полную таблицу результатов, и я получаю эту ошибку каждый раз, когда:

Значение пытается быть установлен на копии кусочком из DataFrame Смотрите предостережений в документации: http://pandas.pydata.org/pandas- документы/стабильный/indexing.html # индексирование ракурса-против-копии данных [ «full_H_Sequence»] [позиция] = SEQ

я заглянул в нее и играл с кодом и изменено на (как предложено в комментариях b Elow)

data.loc[:,('full_H_Sequence',position)] = seq 

, но на этот раз я получил сообщение об ошибке: обратный массив (а, DTYPE, копия = False, порядок = порядок) ValueError: установка элемента массива с последовательностью

Каков правильный синтаксис для использования здесь?

ответ

0

Объяснение: that link было очень полезно. Похоже, решение заключается в использовании data.loc[:,('VHseq', position)] = seq. Проблема заключается в том, что первый [] возвращает однократно проиндексированный фрейм данных, который вы не можете просто обновить.

+0

на этот раз ошибка дает: return array (a, dtype, copy = False, order = order) ValueError: установка элемента массива с последовательностью – Jessica

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