2016-04-18 13 views
0

ここは私の質問です。 "リスト"オブジェクトのリストの内容をループの条件として使用してPythonのデータフレームを変更する方法

`>>> len(miRNAs.index)` 

についてdiferent ある

    0 
0 hsa-let-7f-2-3p 
1 hsa-let-7f-2-5p 
2 hsa-miR-105-3p 
3 hsa-miR-105-5p 
6 hsa-miR-106a-3p 

そして

   Gene_ID miRNA_family_ID 
1452449 NM_001038707 hsa-let-7f-2-3p 
14537388  NM_058241 hsa-let-7f-2-3p 
14540512  NM_078467 hsa-let-7f-2-3p 
15618969  NM_153051 hsa-let-7f-2-3p 
5500627 NM_001184880 hsa-let-7f-2-3p 

彼らlen.index:私は、オブジェクトの "リスト" および下記のヘッドなどのデータフレームを持っています175

>>> len(Alvos_Mir.index) 

両方のdtypesがオブジェクトです。

実際に行う必要があるのは、miRNAという名前のGene_IDを.csvというファイルに保存するために、リストの内容を列と比較することです。私が実行しようとしました何

されました:

for i in range(len(miRNAs)): 
     GenesAlvo_miRNA = [Alvos_Mir['miRNA_family_ID'] == miRNAs[i]]; 
     colunas_interesse_to_save = GenesAlvo_miRNA.ix[:, ['Gene_ID']]; 
     #here i put the values.tolist() beacause I need the format of the output to be like (1,2,3,4,5) and not as a column 
     colunas_interesse_to_save = colunas_interesse_to_save.values.tolist() 
     #I need that the name of the output file is the content current being compare 
     colunas_interesse_to_save.to_csv(miRNAs[i], index=False) 

私はエラーをgetingよ:

Traceback (most recent call last): 
    File "<stdin>", line 2, in <module> 
    File "/home/beatriz/anaconda/lib/python2.7/site-packages/pandas/core/ops.py", line 582, in wrapper 
    raise ValueError('Series lengths must match to compare') 
    ValueError: Series lengths must match to compare 

任意の提案ですか? 事前のおかげで

+0

miRNA_IDごとに複数のgene_idsを扱うmiRNA_idという名前の複数の新しいファイルを作成する必要があります。つまり、各miRNA_idに応じて列gene_idの行を含む複数のファイルに元のファイルを分割する必要があります。ファイルごとに1つのmiRNA_ID。それはもっと明確ですか?あなたに助けてくれてありがとう –

答えて

0

イムないあなたが同じファイルまたは別のファイルで物事を保存するかどうかを確認しますが、あなたは別のファイルで物事を保存したい場合は、次のような何かを試みることができる:

for k, v in Alvos_Mir.groupby('miRNA_family_ID'): 
    if k in miRNAs: v.to_csv(k+'.csv') 
関連する問題