我有如下数据集。并希望按C1计算C2组的数量。
C1 C2
a 1
a 2
a 3
a 4
a 5
b 1
b 2
b 3
b 4
b 5
b 6
c 6
c 7
预期结果如下。 b 的计数应为 a 中不存在的项目。 c 相同,即 a 或 b
中不存在a 5
b 1
c 1
有没有任何逻辑我可以在熊猫中使用来获得这个。除了遍历记录
答案 0 :(得分:2)
您可以删除'C2'
列上的重复项,并计算'C1'
上剩余的值:
print(df.drop_duplicates('C2')['C1'].value_counts())
# a 5
# b 1
# c 1
# Name: C1, dtype: int64
输出将是一系列。如果您需要数据框,可以使用to_frame
:
df = df.drop_duplicates('C2')['C1'].value_counts().to_frame()
print(df)
# C1
# a 5
# b 1
# c 1
<强>买者强>
value_counts
默认对输出进行排序。在这种情况下,它没有什么区别,但您可以传递sort=False
,这样行(索引)将保持与原始数据帧中相同的顺序。