python - 使用分组变量计算多列中的值
问题描述
我有一个熊猫数据框,其中包含如下所示的数据:
levels char_1 char_2
a dog dog
a cat dog
b cow cat
b dog dog
我想要group_by
列并计算一个值出现在列或列levels
中的总次数char_1
char_2
生成的数据框如下所示:
levels char count
a dog 3
a cat 1
b dog 2
b cow 1
b cat 1
我已经尝试过使用数据透视表,但无法理解 pandas 语法。
解决方案
用于DataFrame.melt
unpivot 然后GroupBy.size
用于计数:
df1 = (df.melt('levels', value_name='char')
.groupby(['levels','char'])
.size()
.reset_index(name='count'))
print (df1)
levels char count
0 a cat 1
1 a dog 3
2 b cat 1
3 b cow 1
4 b dog 2
推荐阅读
- java - Java Spring Batch StoredProcedureItemReader 实现(SYSBASE IQ)
- android - Facebook阻止我的应用程序通过链接android打开
- ios - 归档项目时出现错误“在函数上运行传递‘模块验证程序’..”
- android - 在应用购买中检查 Android Play 商店的标准方法是什么?
- xcode - Xcode10 & openframework IOSno
- json - 使用 Swift 在 Realm 中嵌套数组
- android - Android Studio 倾向于使用错误版本的 Android 支持库,
- php - 使用 json_encode 将 PHP 变量传递给 AJAX 文件的问题
- android - 在支持库 28.0.0 中禁用 BottomNavigationView 的 ShiftNode
- inheritance - AssetRegistry.get 函数未在 Hyperledger Composer 中返回完整对象