Python用惟一的值指出两列之间的差异

2024-04-26 07:40:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我为这个粗略的标题道歉,但我有以下场景:

2个具有值的数据帧列:

球| 1

球| 1

斗杆| 2

斗杆| 3

基本上,我怎样才能运行某种验证检查,比如说,Ball很好,因为它在第2列中有1个唯一值,但是stick是错误的,因为它有2个和3个不同的值?我希望列1中的每个唯一值只有一个唯一值。你知道吗


Tags: 数据标题错误场景ball粗略stick斗杆
3条回答

.groupby().nunique()一起使用:

df.groupby('column_1_name')['column_2_name'].nunique()

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

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

结果:

Ball      True
Stick    False
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

编辑

所以我想我知道行动的方向

如果我用以下设置df:

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

数据框返回

   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的都是“坏的”

相关问题 更多 >