我有一个这样的数据框
dummy = pd.DataFrame([
('01/09/2020', 'TRUE', 'FALSE'),
('01/09/2020', 'TRUE', 'TRUE'),
('02/09/2020', 'FALSE', 'TRUE'),
('02/09/2020', 'TRUE', 'FALSE'),
('03/09/2020', 'FALSE', 'FALSE'),
('03/09/2020', 'TRUE', 'TRUE'),
('03/09/2020', 'TRUE', 'FALSE')], columns=['date', 'Action1', 'Action2'])
现在,我希望每天汇总一次“TRUE”操作,该操作应如下所示:
我应用了分组,求和和计数等功能,但对我来说却无济于事,因为我必须聚合多个列,而且我不想将表拆分为多个数据框并以单个方式解析并合并为一个,有人可以建议任何聪明的方法来做到这一点。
最佳答案
看到此答案的任何人都应该查看@QuangHoang或@Vaishali的答案
他们是更好的答案。我无法控制OP的选择,但您应该赞成这些答案。
灵感来自@QuangHoang
dummy.iloc[:, 1:].eq('TRUE').groupby(dummy.date).sum()
Action1 Action2
date
01/09/2020 2 1
02/09/2020 1 1
03/09/2020 2 1
老答案
修复数据框,使其具有实际的
True
/False
值from ast import literal_eval
dummy = dummy.assign(**dummy[['Action1', 'Action2']].applymap(str.title).applymap(literal_eval))
然后使用groupby
dummy.groupby('date').sum()
Action1 Action2
date
01/09/2020 2 1
02/09/2020 1 1
03/09/2020 2 1
关于python - Pandas Groupby仅依靠多个列来获取特定的字符串值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66783216/