2015-11-06 109 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