我有一个数据集,如下所示:
进口Pandas作为PD
dict1 = {
"idx": [1, 2, 9, 1, 1, 6, 1, 3, 2],
"value": ["a1", "b1", "c1", "t1", "t1", "f1", "r1", "l1", "b1"]
}
df = pd.DataFrame(dict1)
这里,a1
、t1
、r1
总是与1
一起出现。
def one_to_one(df, col1, col2):
first = df.groupby(col1)[col2].count().max()
second = df.groupby(col2)[col1].count().max()
return first + second == 2
one_to_one(df, 'idx', 'value')
但是它返回了None
,即使a1
、t1
、r1
总是与1
一起出现,其他人也是如此。如何验证,例如a1
只与idx
= 1
一起出现?
1条答案
按热度按时间d4so4syb1#
您可以只使用基于
drop_duplicates
的idx
+value
组合。如果每个value
只有一个idx
,则结果中包含的记录数应与value
列中唯一值的数目相同: