python - 计算多个熊猫列中的出现次数
问题描述
dg se
29 10
37 22
3 13
15 7
42 20
31 23
26 17
7 1
36 19
5 7
21 5
37 13
37 6
2 24
在上面的数据框中,我想计算每列值在 0 - 30、30 - 40 和 > 40 之间的出现百分比;以及两列的值介于 0 - 30 和 30 - 40 之间的出现百分比。我正在考虑使用 pandashist
函数,但这并不能满足我的要求
解决方案
用于cut
分箱两列:
bins = [0, 30, 40, np.inf]
labels = ['0-30','30-40','40+']
dg = pd.cut(df['dg'], bins=bins, labels = labels, include_lowest=True)
se = pd.cut(df['se'], bins=bins, labels = labels, include_lowest=True)
然后value_counts
:
dg_per = dg.value_counts(normalize=True)
print (dg_per)
0-30 0.571429
30-40 0.357143
40+ 0.071429
Name: dg, dtype: float64
se_per = se.value_counts(normalize=True)
print (se_per)
0-30 1.0
40+ 0.0
30-40 0.0
Name: se, dtype: float64
对于两列中的相同值,首先过滤:
both = (dg[dg == se])
print (both.value_counts(normalize=True))
0-30 1.0
40+ 0.0
30-40 0.0
Name: dg, dtype: float64
推荐阅读
- android - 右溢出如何处理
- flutter - 如何在 Dart 中自动转换为具体的接口实现实例?
- flutter - 将 AutoRoute 2.2.0 与 Bloc MultiBlocProvider 一起使用
- php - ACF 动态设置返回类型
- javascript - vuejs在自定义下拉组件中获取选定的值
- google-cloud-platform - 在 Microsoft Azure 上托管的 Laravel 中用于文档 AI API 的 Google Cloud 客户端库
- snakemake - 如何从在snakemake中不共享命名约定的单个输入文件生成多个输出文件?
- react-native - React-native:无法解析 com.android.tools.ddms:ddmlib:24.3.1
- r - 为什么在检查字符值是否大于数字时得到 TRUE?
- vba - 硒基础。如何处理错误的登录信息