2015-11-06 192 views
3

我有與pd.read_excel讀取迭代的行和打印基於條件大熊貓蟒

Block  Con  
    1  100  
    1  100  
    1  100  
    1  33  
    1  33  
    1  33 
    2  100 
    2  100 
    2  100 
    2  33 
    2  33 
    2  33 
... 

存在總共10是一個數據集「塊的,每個‘塊’具有2種類型的」 CON 「:100和33 我怎樣才能通過迭代‘阻止’列,以便爲每個‘塊’它打印出的2種類型的‘CON’:100和33

願望輸出:

 1  100 
       33 
     2  100 
       33 
我的代碼:
for b in data.Block: 
    for c in data.Con: 
     print(c) 

但它打印出每塊塊的所有con。

回答

2

使用drop_duplicates:

In [11]: df 
Out[11]: 
    Block Con 
0  1 100 
1  1 100 
2  1 100 
3  1 33 
4  1 33 
5  1 33 
6  2 100 
7  2 100 
8  2 100 
9  2 33 
10  2 33 
11  2 33 

In [12]: df.drop_duplicates() 
Out[12]: 
    Block Con 
0  1 100 
3  1 33 
6  2 100 
9  2 33 
+0

謝謝你,非常有意義。但是我的實際表格比這更復雜,這就是爲什麼我想知道如何在某些條件下遍歷行。請看我編輯的帖子。 – Jessica

+0

@Jessica你應該問這是另一個問題,而不是編輯舊的改變它。這樣,如果別人谷歌爲您的問題/答案,他們找到了:) –

+0

我會記住下一次:) – Jessica

0

我會以這種方式使用groupby

d = df.groupby(['Block','Con']).size() 

返回:

Block Con 
1  33  3 
     100 3 
2  33  3 
     100 3 
+0

謝謝,但我的實際表格比這更復雜,請看我編輯的帖子。 – Jessica

+0

請在這裏看到我的新帖子:http://stackoverflow.com/questions/33573329/iterate-through-rows-on-condition-pandas-python – Jessica