python - Pandas Groupby仅依靠多个列来获取特定的字符串值

标签 python pandas

我有一个这样的数据框

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'])
enter image description here
现在,我希望每天汇总一次“TRUE”操作,该操作应如下所示:
enter image description here
我应用了分组,求和和计数等功能,但对我来说却无济于事,因为我必须聚合多个列,而且我不想将表拆分为多个数据框并以单个方式解析并合并为一个,有人可以建议任何聪明的方法来做到这一点。

最佳答案

看到此答案的任何人都应该查看@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/

相关文章:

python - python对象的自定义过滤函数

python - Django Haystack 某些关键字错误

python - pd.to_datetime() 解析正确的日期格式时出现奇怪的错误

python - 如何用 cython(或 numpy)加速 Pandas

python - 在 Pandas 中拆分堆叠数据框

python - 将 Pandas 数据帧转换为邻接矩阵

python - python 中的 timeit 模块无法识别 numpy 模块

python - 类型错误 : unhashable type: list when using Python set of strings

python - 如何自省(introspection) django 模型字段?

python - Pandas /pyplot 散点图 : set axis labels not working