【发布时间】:2018-12-28 12:32:32
【问题描述】:
想象一下以下 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 列,它有两个不同的值 property1 和 property2。对于 id "bar",两列只有一个不同的值。
我正在寻找的是代码,如果按 id 分组,则该代码会给我那些计数大于 1 的列的名称。所以结果应该是 A 列的名称,因为它包含不明确的值。
df.groupby(['id'])
我只知道如何获取计数(出现)大于 1 的 ID。但这不是我最终要寻找的。p>
df['id'].value_counts().reset_index(name="count").query("count > 1")["id"]
感谢任何提示。
【问题讨论】:
-
你能发布你想要的数据集吗?
-
不,因为它是机密的。因此,我添加了那个小演示数据。
-
我的意思是您想要的数据集基于您的样本输入数据集...
标签: python pandas group-by pandas-groupby