每行都有一个唯一索引,因此我的数据框如下所示-

>>>df.head()
    Alignment   Sequence    Sequence2b  Post2b  SequenceLength  Sequence2bLength    Name    Year    Clade   Country Patient medoid
index
44644   MRV-KET----QMNWP---N----------L---W---K-------...   MRVKETQMNWPNLWKWGTLIFGLVIICSAADNLWVTVYYGVPVWRD...       AGY 778 0   AA111a_WG3  2009    01_AE   TH  AA111   NA
3616    ------T----QMNWQ---H----------L---W---K-------...   TQMNWQHLWKWGTLILGLVIICSASNLWVTVYYGVPVWKDADTTLF...   AVVKINENATLDDTSY    LKN 822 16  041_WK32    -   B   CH  041 NA
36025   MRV-KET----QMSWP---N----------L---W---K-------...   MRVKETQMSWPNLWKWGTLILGLVIMCSASDNLWVTVYYGVPVWRD...   D   NTS 843 1   AE_Env_CR11_Jan09D  2009    01_AE   TH  CR11    NA
42027   MRV-KGI----RKNCQ---H----------L---W---R-------...   MRVKGIRKNCQHLWRWGIMLLGMLMICSTAEKLWVTVYYGVPVWRE...   DADEIHNDDNSS    SCY 862 12  CR0058S 2002    B   US  -   NA
31626   MRV-RGI----PRNYP---Q----------W---W---I-------...   MRVRGIPRNYPQWWIWGILGFWMIIICRVMESSWVTVYYGVPVWTD...   DAIPLNGNSSNSSSNSSEY LIN 852 19  03ZASK006B2 2003    C   ZA  SK006   NA


有没有办法像键值一样容易地迭代它,就像字典一样?

for index in df:
   print index, df[index]['Name']
   break
 >>>44644 : {Name:AA11a_WG3}


这是我想出的,但是我不确定这是否是最“ pythonic”的方式。

 for index in df.index:
     print index, df[df.index == index].Name


df.to_dict无法工作,因为它删除了索引。

最佳答案

您可能要使用iterrows()

for idx, row in df.iterrows():
     print((idx, row.Name))

关于python - 像python字典一样迭代Pandas数据框,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33204279/

10-12 20:10