我有一个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'作为列名的最佳方法是什么?
答案 0 :(得分:6)
它是named tuple。
要通过标签:
访问指定元组的值for item in df.itertuples():
print(item.a, item.b)
或按职位
for item in df.itertuples():
print(item[1], item[2])