根据条件pandas python迭代行和打印

时间:2015-11-06 16:30:08

标签: python pandas iteration row

我有一个用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个'块,每个'块'有两种类型的' con':100和33。 我怎样才能遍历' Block'列,以便每个'块'它打印出两种类型的' con':100和33

欲望输出:

      1      100
              33
      2       100
              33

我的代码:

for b in data.Block:
     for c in data.Con:
         print(c)

但它打印出每行块的所有con。

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

我会以这种方式使用groupby

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

返回:

Block  Con
1      33     3
       100    3
2      33     3
       100    3