Python Pinpoint两个列之间的差异具有唯一值

时间:2017-10-25 17:34:05

标签: python pandas

我为粗略的标题道歉,但我有以下情况:

2个数据帧列,其值为:

球| 1

球| 1

坚持2

坚持3

基本上,我怎么能运行某种验证检查说,Ball很好,因为它在第2列中有1个唯一值,但是粘贴是错误的,因为它有2和3不相同?我希望第1列中的每个唯一值只有1个唯一值。

3 个答案:

答案 0 :(得分:0)

df.duplicated(subset='Ball')

这将返回一系列布尔值,表示值是否与前一行重复

https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.duplicated.html

   Ball Stick
0   1   2
1   1   3

返回

0    False
1     True
dtype: bool

<强> EDITED

所以我想我知道OP在哪里

如果我用:

设置df
df = pd.DataFrame([['1','2'],['1','2'],['1','8']], columns=['Ball','Stick'])

df返回

   Ball Stick
0   1   2
1   1   2
2   1   8

然后:

for row in df:
    print(row)
    print(df.duplicated(subset=row, keep=False))

返回:

Ball
0    True
1    True
2    True
dtype: bool
Stick
0     True
1     True
2    False
dtype: bool

因此,任何包含False的列都将为“Bad&#39;

答案 1 :(得分:0)

.groupby().nunique()

一起使用
df.groupby('column_1_name')['column_2_name'].nunique()

答案 2 :(得分:0)

您可以阅读没有列名的CSV文件,并且可以获得如下值

df = pd.read_csv('data.csv',header=None)
print(df.groupby(0)[1].nunique()==1)

结果:

Ball      True
Stick    False