pandas - Pandas:如何按数据框计算组中的不同值?
问题描述
从昨天开始,我一直在搜索 stackoverflow 以寻找类似的问题,但我找不到与我的场景匹配的问题。
我从一个多列数据框开始,我试图获取按特征 A 分组的特征 B 的不同值的计数/总和。
df_gby= df.groupby (['featureA', 'featureB')]
df_gby['featureA', 'featureB'].head () # I am interested only on these 2 columns
featureA featureB
------------------
str1 feature1
str1 feature2
str1 feature3
str2 feature3
str2 feature4
str3 feature1
str3 feature2
str3 feature2
str3 feature2
str3 feature5
我想得到这样的结果:
featureA featureB_count
-----------------------
str1 3
str2 2
str3 3
请注意 str3 的 feature2 重复了 3 次。它应该算作 1,因此不同值的总数应该是 3,而不是 5。我不确定这是否发生在 df_gby 中,但可以肯定它发生在初始 df 上。可能在 df_gby 上没有重复项,因为它是 group by 2 个功能的结果,但我强调这一点只是为了获得一些提示。这些 2 列是字符串/对象,而不是数字。如果上面的 groupby 操作在 featureB 上返回不同的值,那么计算 featureA 中有多少组不是一件简单的事情吗?(即便如此,我还是无法得到这个数字。groupby 数据帧是个技巧,并不是每个常规函数都可以在 groupby 数据帧上使用......)
我怀疑是这种情况,因为 df_gby 上的 size 为每对返回 1,据我所知。
featureA featureB
----------------------------
str1 feature1 1
str1 feature2 1
str1 feature3 1
str2 feature3 1
str2 feature4 1
...(truncated output)
数据框很大,超过 5000 行,所以我无法正确检查它,以确保在 groupby 操作后 featureB 上没有重复条目,因为输出被截断,但正如我所说,肯定有重复 featuresB 上特定特征A的原始df。
我感谢您的帮助,
解决方案
推荐阅读
- command-line - 从文本文件 (openSSL x509) 导入主题字段?
- flutter - 有没有办法在 Flutter 上添加两种不同颜色的 Iphone x SafeArea
- ruby-on-rails - 在输入字段上生成随机数
- java - __groovy 中的 Java 函数执行,但结果未分配给变量
- android - 在电子邮件中打开链接以在应用程序中而不是在网站中进行确认
- android - 关于 Chrome Android 扩展支持的官方来源
- php - ElasticSearch 正则表达式 pattern_replace
- angular - 多次调用 ngOnint() 服务方法内部
- interface - SystemVerilog 接口的放置位置,以及如何命名接口和文件
- java - How to compile tflite with GPU support?