像python字典一样迭代Pandas数据帧

jwi*_*720 1 python pandas

我为每一行都有一个唯一的索引,所以我的数据框看起来像这样 -

>>>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
Run Code Online (Sandbox Code Playgroud)

有没有办法轻松地迭代它像一个像这样的字典的键,值对?

for index in df:
   print index, df[index]['Name']
   break
 >>>44644 : {Name:AA11a_WG3}
Run Code Online (Sandbox Code Playgroud)

这是我想出的,但我不确定这是否是最"pythonic"的方式.

 for index in df.index:
     print index, df[df.index == index].Name
Run Code Online (Sandbox Code Playgroud)

df.to_dict不起作用,因为它删除了索引.

Ale*_*der 8

你可能想用iterrows().

for idx, row in df.iterrows():
     print((idx, row.Name))
Run Code Online (Sandbox Code Playgroud)