2017-08-16 173 views
0

我有一個數據幀如下:型大熊貓itertuples的itertuples和打印列名返回值的

  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=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'作爲循環遍歷每行的項目的列名的值的最佳方式是什麼?

回答

4

這是一個named tuple

要,或者通過標籤訪問指定的元組的值:由

位置
for item in df.itertuples(): 
    print(item[1], item[2]) 
+0

我的壞

for item in df.itertuples(): print(item.a, item.b) 

或。我的意思是類型(項目)。它從上面的輸出 – user7786493

+0

返回熊貓(索引= 0 .....等),這是正確的。儘管這個類繼承自namedtuple。 – ayhan

+0

你提到了print item.a,item.b.但是,這假設我們已經提前知道列名。我們不知道df和它的列是什麼。有沒有辦法循環/打印列? – user7786493