迭代行并根据条件打印 pandas python
iterate rows and print based on condition pandas python
我有一个用 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个'block',每个'block'有2种'con':100和33。
我如何遍历 'Block' 列以便对于每个 'block' 它打印出 2 种类型的 'con':100 和 33
期望输出:
1 100
33
2 100
33
我的代码:
for b in data.Block:
for c in data.Con:
print(c)
但它会打印出每行块的所有 con。
使用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
我会这样使用groupby
:
d = df.groupby(['Block','Con']).size()
哪个returns:
Block Con
1 33 3
100 3
2 33 3
100 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个'block',每个'block'有2种'con':100和33。 我如何遍历 'Block' 列以便对于每个 'block' 它打印出 2 种类型的 'con':100 和 33
期望输出:
1 100
33
2 100
33
我的代码:
for b in data.Block:
for c in data.Con:
print(c)
但它会打印出每行块的所有 con。
使用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
我会这样使用groupby
:
d = df.groupby(['Block','Con']).size()
哪个returns:
Block Con
1 33 3
100 3
2 33 3
100 3