获取具有不同值计数大于指定值的列

马蒂亚斯

想象以下Python Pandas数据框:

df = pd.DataFrame({'id' : ['foo', 'bar', 'foo'], \
                   'A' : ['property1', 'property1', 'property2'], \
                   'B' : ['test', 'test', 'test'] })
from tabulate import tabulate
print(tabulate(df, headers='keys', tablefmt='psql'))

+----+-----------+------+------+
|    | A         | B    | id   |
|----+-----------+------+------|
|  0 | property1 | test | foo  |
|  1 | property1 | test | bar  |
|  2 | property2 | test | foo  |
+----+-----------+------+------+

在这里您可以看到,对于id “ foo”,列B仅具有一个唯一的(不同的)值test但是对于A列,它具有两个不同的值property1property2对于id “ bar”,两列都只有一个不同的值。

我正在寻找的代码为我提供了那些按id分组时计数大于1的列的名称因此,结果应为A列的名称,因为它包含非唯一值。

df.groupby(['id'])

我只知道如何获得其ID(发生率)大于1的ID。但这不是我最终要寻找的。

df['id'].value_counts().reset_index(name="count").query("count > 1")["id"]

感谢您的任何提示。

耶斯列尔

使用:

#filter column of interest
a = (df.groupby(['id'])['A','B'].nunique() > 1).any()

print (a)
A     True
B    False
dtype: bool

#if need test all columns without id
a = (df.set_index('id').groupby('id').nunique() > 1).any()
print (a)
A     True
B    False
dtype: bool

最后一个过滤器:

b = a.index[a]
print (b)
Index(['A'], dtype='object')

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何获取其中具有不同值的列的计数

Django查询以获取特定列的所有不同值的计数

Django查询以获取ArrayField列的所有不同值的计数

如何获取指定列的值计数?

jQuery计数具有大于零的值的特定类的元素

Android sqlite查询以获取具有大于值的表的值

获取不同值的计数

R获取具有相同但较小的其他列值的唯一列值的计数

提取具有大于指定大小的连续值的组

改进对在另一列中具有特定值的不同值进行计数的查询

获取列值大于或等于特定值的所有行

MongoDB:获取不同组之间具有最高值的文档计数

获取具有与其他列不同的值的列的组合值

SQL Server计数2列中具有不同值的数据

获取每个不同值的计数

获取在两列中具有相同值但在第三列中具有不同值的记录

在PostgreSQL中选择具有计数的不同值

如何根据sql server中的where条件获取表中所有列的值的不同计数?

django chart.js-查询以获取特定列的所有不同值的计数

返回具有不同值的列的列表

连接具有不同列值的行

选择具有不同列的聚合值

如何在 Pandas 中获取具有键对值的列的计数

查询以获取3列中具有相同值且1之中具有不同值的行

获取不在同一列但具有指定条件的所有可能值

获取在 laravel 5.7 的列中具有指定值之一的所有行

SQL:如何获取列中每个不同值的计数?

如何从MYSQL的一列不同值中获取计数

将列添加到具有不同值的指定索引的csv文件中