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等等,想查一下。你能建议我如何检查吗
您可以调用 groupby
和 nunique
:
>>> 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]
这将使您目视检查列是否匹配。
在 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等等,想查一下。你能建议我如何检查吗
您可以调用 groupby
和 nunique
:
>>> 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]
这将使您目视检查列是否匹配。