- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
这是我在数据框“df”中的数据:
Document Name Time
SPS2315511 A 1 HOUR
SPS2315512 B 1 - 2 HOUR
SPS2315513 C 2 - 3 HOUR
SPS2315514 C 1 HOUR
SPS2315515 B 1 HOUR
SPS2315516 A 2 - 3 HOUR
SPS2315517 A 1 - 2 HOUR
我正在使用下面的代码,它给出了数据透视表中的计数摘要,
table = pivot_table(df, values=["Document"],
index=["Name"], columns=["Time"],
aggfunc=lambda x: len(x),
margins=True, dropna=True)
但我想要的是当您右键单击数据透视表并选择“将值显示为 -> % of Row Total”时在 Excel 数据透视表中计算的行百分比。由于我的文档是一个非数字值,所以我无法获取它。
Count of Document Column Labels
Name 1 HOUR 1 - 2 HOUR 2 - 3 HOUR Grand Total
A 33.33% 33.33% 33.33% 100.00%
B 50.00% 50.00% 0.00% 100.00%
C 50.00% 0.00% 50.00% 100.00%
Grand Total 42.86% 28.57% 28.57% 100.00%
任何人都可以帮我想出一种方法来获得这个结果吗??
我正在尝试操纵数据透视数据,这将给我行总数,而不是数据框中的数据,我想要的是“行总数的百分比”。而且最重要的是我所有的数据都是非数字值...
最佳答案
@maxymoo 指出的可能重复项非常接近解决方案,但我会继续将其作为答案写下来,因为有一些差异并不完全简单。
table = pd.pivot_table(df, values=["Document"],
index=["Name"], columns=["Time"],
aggfunc=len, margins=True,
dropna=True, fill_value=0)
Document
Time 1 - 2 HOUR 1 HOUR 2 - 3 HOUR All
Name
A 1 1 1 3
B 1 1 0 2
C 0 1 1 2
All 2 3 2 7
主要的调整是添加 fill_value=0
,因为您真正想要的是计数值为零,而不是 NaN。
然后你基本上可以使用@maxymoo 链接到的解决方案,但你需要使用 iloc
或类似的 b/c 表列现在有点复杂(是多索引的结果数据透视表)。
table2 = table.div( table.iloc[:,-1], axis=0 )
Document
Time 1 - 2 HOUR 1 HOUR 2 - 3 HOUR All
Name
A 0.333333 0.333333 0.333333 1
B 0.500000 0.500000 0.000000 1
C 0.000000 0.500000 0.500000 1
All 0.285714 0.428571 0.285714 1
您仍然需要做一些小的格式化工作(翻转第一列和第二列并转换为 %),但这些是您要查找的数字。
顺便说一句,这里没有必要,但您可能想考虑将“时间”转换为有序的分类变量,这将是解决列排序问题的一种方法(我认为),但可能值得也可能不值得麻烦取决于您对数据进行的其他操作。
关于python - Pandas 数据透视表 : Percentage of row calculation for non-numeric values,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31064752/
为了使问题尽可能简单: 在 Excel 单元格 A1 中有一个数值:0.11 我想将单元格格式设置为百分比值,但不带 % 符号。我想要:11;不是 11% 我不是在问如何在常规 Excel 中执行此操
我正在努力提高我的 Spark Scala 技能,但我遇到了这个案例,我找不到操作方法,所以请指教! 我有原始数据,如下图所示: 我想计算计数列每个结果的百分比。例如。最后一个错误值为 64,64 在
在 firefox 中,我的结果符合预期。我正在尝试添加 width 和 padding 来组成完整尺寸。在 chrome 中这似乎不起作用, .tab-content { padding: 10px
我有一个字符串,其中可能出现 %[{variable}, percentage] 我想将其转换为 (({variable}*percentage)/100) 并将其替换在同一位置。最好的方法是什么?
前言 它看起来像是几个 stackoverflow 问题的重复,但我的情况(可能)有点独特。 我的情况 我有一本字典。 键是一个字符串,值是一个整数。 我希望 python 脚本随机选择 N 个键。
我喜欢在 Item 时计算“两行之间的变化百分比” 行的变化。 对于第一行项目,我可以放置一些文本或空白 (例如“跳过”或空白是可以的)因为没有比较前一行的相同 元素 df % group_by(
我无法理解百分比的意义。 在此站点中:https://developer.mozilla.org/en-US/docs/Web/CSS/top#Summary 它说:“引用包含 block 的高度”
我知道你可以在 Sass/Scss 中做一些简单的数学运算。但是有没有办法从百分比中减去像素?例如: $image-size: 200px; .bio { width: 100% - $ima
如果我想找到来自 12345 邮政编码区域的人数百分比,我会取具有该邮政编码的人数并将其与总人数相除……我在下面的示例查询中遗漏了什么?我不知道如何正确显示百分比。它只是一直说0%。 select (
关闭。这个问题是opinion-based .它目前不接受答案。 想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题. 7年前关闭。 Improve t
我对RPGLE了解不多。我正在尝试解决给我的这个小练习。我从来没有做过或见过使用小数的练习。我想获得 7 个值的百分比。所以,我想做如下计算。 例如在 RPGLE 中。 DTotal
我正在尝试使用正则表达式解析文本文件,将百分比作为字符串,并用百分比乘以用户提供的整数来替换结果。如果用户输入 400,则代码应返回“120 x 8、180 x 6 等” 尝试进行替换,但它用相同的字
我有一个有效的查询,但除了我已有的查询之外,我想为每个类别添加一个额外的列,即免费、减少、付费和认证免费,以及与学生总数相比的百分比。谁能帮我吗? select count(case
我需要获取百分比但不能使用 WHERE 子句,因为它是大型 SQL 查询的一部分。 我尝试这样做: select (count(sector='Rurality'))/(count(sector))*
是否可以对 Elastic Search 进行查询,以返回分数占最大分数的百分比?到目前为止,它返回的值如 "_score": 0.00786336, 以及最大分数如 max_score": 0.13
如果我以百分比形式给出“from”值,以像素为单位给出“to”值,则“弹跳动画不会按预期工作。 请检查这里的代码:http://jsfiddle.net/xJ4xy/ 解决方案是什么? (我尽量不使用
我正在使用百分比来缩放我网站上图库中的缩略图,但我无法使用 object-fit: cover 来处理它们。我正在尝试使用 object-fit,这样我就可以让缩略图实际上是方形的,而不是图像本身具有
我有一个包含 2 个“配对”整数数组 newNumerator[ ] 和 newDenominator[ ] 的程序,它们都有 9 个整数。我编写了一个按升序对它们进行排序的函数,但是我不确定它是否有
遗憾的是,我试过目视它,但没有结果。 我想做的是根据百分比进行变亮/变暗混合:如果百分比 0,则执行“变亮(@color,@light)”。 像这样: ._changeColor(@color, @
我在一个使用标准网格系统的响应式网站上工作,所以我的 div 不能有固定的高度。话虽如此,我已经设置了一个 fiddle 文件来模拟我的问题。出于美观原因,我在桌面上的最小高度为 50px,并将行高也
我是一名优秀的程序员,十分优秀!