给定一个像这样的 DataFrame:
dft = pd.DataFrame([[12, 'Bob', True],
[123, 'Henry', False],
[768, 'Bob', False]],
columns=['TID', 'UID', 'TRUTH'])
看起来像这样:
TID UID TRUTH
0 12 Bob True
1 123 Henry False
3 768 Bob False
我想聚合 UID
并计算 TRUTH
为 True 的位置。所以输出应该是这样的:
UID TRUTH
0 Bob 1
1 Henry 0
我已经试过了:
dft.groupby('UID').agg({'TRUTH': pd.Series.nunique}) # counts all values T and F
我在概念上苦苦思索如何将条件与聚合放在一起。
感谢您的帮助!
最佳答案
这是您要找的吗?
print(dft.groupby('UID')['TRUTH'].sum().astype(int))
输出:
UID
Bob 1
Henry 0
Name: TRUTH, dtype: int32
关于pandas - 计算 Pandas 中列为 True 的地方,由另一个分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40477725/