pandas 按列检查数据框

pandas dataframe checking columnwise

在 pandas 数据帧 df

Col1    Col2    Col3

T1      N1      G1

T2      N2      G1

T3      N3      G1

T4      M1      G2

T5      M2      G2

T6      M3      G2

我怀疑对于G1,N1=N2=N3,对于G2,M1=M2=M3等等,想查一下。你能建议我如何检查吗

您可以调用 groupbynunique:

>>> df
  Col1  Col2 Col3
0   T1     1   G1
1   T2     1   G1
2   T3     2   G1
3   T4     5   G2
4   T5     5   G2
5   T6     5   G2
>>> df.groupby("Col3")["Col2"].nunique()
Col3
G1      2
G2      1
Name: Col2, dtype: int64

这包含每个 Col3 值的唯一 Col2 值的数量。如果想直接查看是否都是1:

>>> (df.groupby("Col3")["Col2"].nunique() == 1).all()
False

更手动的方法是:

for row in df.iterrows():
     print row[1][1] == row[1][2]

这将使您目视检查列是否匹配。