基于条件迭代行并打印输出 Pandas Python

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 个“块”,每个“块”都有两种类型的“内容”:100 和 33。如何遍历“块”列,以便针对每个“块”打印出这两种类型的“内容”:100 和 33。

期望输出结果为:

      1      100
              33
      2       100
              33

我的代码:

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

但是它会在每个块的每一行打印出所有内容。
2个回答

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

谢谢,那很清楚。但是我的实际表格比这个复杂得多,所以我想知道如何通过某些条件迭代行。请查看我编辑过的帖子。 - Jessica
@Jessica,你应该提出另一个问题,而不是编辑旧问题来更改它。这样,如果其他人谷歌搜索你的问题/答案,他们就可以找到这个 :) - Andy Hayden
请查看我的新帖子:http://stackoverflow.com/questions/33573329/iterate-through-rows-on-condition-pandas-python - Jessica

0

我会这样使用 groupby

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

它返回:

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

谢谢,但我的实际表格比这个复杂得多,请查看我编辑过的帖子。 - Jessica
请查看我的新帖子:http://stackoverflow.com/questions/33573329/iterate-through-rows-on-condition-pandas-python - Jessica

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接