迭代中的返回值类型和pandas中的itertuples的打印列名

时间:2017-08-16 14:17:14

标签: python-3.x pandas

我有一个DataFrame如下:

          a         b         c         d
0  0.140603  0.622511  0.936006  0.384274
1  0.246792  0.961605  0.866785  0.544677
2  0.710089  0.057486  0.531215  0.243285

我想用itertuples()迭代df并打印每行的值和列名。目前我知道以下方法:

df=pd.DataFrame(np.random.rand(3,4),columns=['a','b','c','d'])
for item in df.itertuples():
    print(item)

输出是:

Pandas(Index=0, a=0.55464273035498401, b=0.50784779485386233, c=0.55866384351761911, d=0.35969591433338755)
Pandas(Index=1, a=0.60682158587529356, b=0.37571390304543184, 
c=0.13566419305411737, d=0.55807909125502775)
Pandas(Index=2, a=0.73260693374584385, b=0.59246381839030349, c=0.92102184020347211, d=0.029942550647279687)

问题:

1)当类型(df)返回Pandas()时,我认为每次迭代的返回数据是一个元组(由函数名建议)?

2)当循环遍历每一行的项目时,提取'a','b','c','d'作为列名的最佳方法是什么?

1 个答案:

答案 0 :(得分:6)

它是named tuple

要通过标签:

访问指定元组的值
for item in df.itertuples():
    print(item.a, item.b)

或按职位

for item in df.itertuples():
    print(item[1], item[2])