Создание Dict из разных источников - PullRequest
0 голосов
/ 15 марта 2020

С помощью Python я пытаюсь создать ди c, используя информацию из одного кадра данных и одного списка. Мне нужно имя одного из столбцов и количество следующих столбцов, чтобы выбрать определенные c части списка.

Мой фрейм данных выглядит так:

df
       protein_name  LEN  Start    End
0     Ribosomal_S9:  121      0    121
1     Ribosomal_S8:  129    121    250
2    Ribosomal_L10:  100    250    350
3             GrpE:  166    350    516
4           DUF150:  141    516    657
..              ...  ...    ...    ...
115      TIGR03632:  117  40149  40266
116      TIGR03654:  175  40266  40441
117      TIGR03723:  314  40441  40755
118      TIGR03725:  212  40755  40967
119      TIGR03953:  188  40967  41155

[120 rows x 4 columns]

И мой список выглядит так:

Sequence:
'GRRKNAIARVFAMPGEGRIIINNRPLSEYFGRKTLETIVRQPLDLTGTASRFDIMAKVQGGGISGQAGAIKLGIARALIQADPNLRPVLKKAGFLTRDPRMKERRKYGLKKARRAPQYSK...'

Мне нужен ди c, например:

{'Ribosomal_S9:': 'GRRKNAIARVFAMPGEGRIIINNRPLSEYFGRKTLETIVRQPLDLTGTASRFDIMAKVQGGGISGQAGAIKLGIARALIQADPNLRPVLKKAGFLTRDPRMKERRKYGLKKARRAPQYSK',Ribosomal_S8: PLDLTGTASRFDIMAKVQGGGISGQAGAIKLGIARALIQADPNLRP, ...}

Перед использованием l oop (Вот как я думаю, это может готово), я создал di c только с первым именем.

Dict = {df.iloc[0,0]: Sequence[df.iloc[0,2]:df.iloc[0,3]]}
output:
{'Ribosomal_S9:': 'GRRKNAIARVFAMPGEGRIIINNRPLSEYFGRKTLETIVRQPLDLTGTASRFDIMAKVQGGGISGQAGAIKLGIARALIQADPNLRPVLKKAGFLTRDPRMKERRKYGLKKARRAPQYSKR'}

После этого я попытался использовать этот подход в al oop, но обнаружил так много проблем. Как я могу провести это? любой совет

Кстати, если я допустил какую-либо ошибку при создании di c ранее или какое-либо недопонимание с концепциями, пожалуйста, дайте мне знать, что я новичок в этой области.

1 Ответ

1 голос
/ 15 марта 2020

Вы находитесь на правильном пути.

Просто замените «переменные», когда вы положите их в для l oop. Например:

mydict = {}
myseq = 'GRRKNAIARVFAMPGEGRIIINNRPLSEYFGRKTLETIVRQPLDLTGTASRFDIMAKVQGGGISGQAGAIKLGIARALIQADPNLRPVLKKAGFLTRDPRMKERRKYGLKKARRAPQYSK'
for index, row in df.iterrows():
    mydict[row['protein_name']] = myseq[row['Start']:row['End']]

Использование имен для выбора столбцов может быть более интуитивно понятным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...