熊猫:.groupby()。size()和百分比
我有一个源自df.groupby().size()
操作的DataFrame,看起来像这样:
Localization RNA level
cytoplasm 1 Non-expressed 7
2 Very low 13
3 Low 8
4 Medium 6
5 Moderate 8
6 High 2
7 Very high 6
cytoplasm & nucleus 1 Non-expressed 5
2 Very low 8
3 Low 2
4 Medium 10
5 Moderate 16
6 High 6
7 Very high 5
cytoplasm & nucleus & plasma membrane 1 Non-expressed 6
2 Very low 3
3 Low 3
4 Medium 7
5 Moderate 8
6 High 4
7 Very high 1
我要执行的操作是计算单独出现的次数(即最后一列来自.size()
),以占适用项中出现的总数的百分比Localization
。
例如:cytoplasm
定位中总共出现了50次(7 + 13 + 8 + 6 + 8 + 2 + 6),分别产生14%和26%的RNANon-
expressed
和Very low
RNA水平。
有没有很好的方法可以做到这一点?我一直在以一种我认为非常round回的方式进行处理,即为每个对象创建一个新的DataFrameLocalization
并从那里开始进行工作,但是存在很多局限性,并且最终必须合并所有生成的DataFrames
。我希望至少有一种更聪明的方法!
-
这是基于熊猫完整的示例
groupby
,sum
函数。基本思想是基于数据对数据进行分组'Localization'
并在其上应用功能。import pandas as pd from io import StringIO #For Python 2, replace previous line with: from StringIO import StringIO data = \ """Localization,RNA level,Size cytoplasm ,1 Non-expressed, 7 cytoplasm ,2 Very low ,13 cytoplasm ,3 Low , 8 cytoplasm ,4 Medium , 6 cytoplasm ,5 Moderate , 8 cytoplasm ,6 High , 2 cytoplasm ,7 Very high , 6 cytoplasm & nucleus ,1 Non-expressed, 5 cytoplasm & nucleus ,2 Very low , 8 cytoplasm & nucleus ,3 Low , 2 cytoplasm & nucleus ,4 Medium ,10 cytoplasm & nucleus ,5 Moderate ,16 cytoplasm & nucleus ,6 High , 6 cytoplasm & nucleus ,7 Very high , 5 cytoplasm & nucleus & plasma membrane,1 Non-expressed, 6 cytoplasm & nucleus & plasma membrane,2 Very low , 3 cytoplasm & nucleus & plasma membrane,3 Low , 3 cytoplasm & nucleus & plasma membrane,4 Medium , 7 cytoplasm & nucleus & plasma membrane,5 Moderate , 8 cytoplasm & nucleus & plasma membrane,6 High , 4 cytoplasm & nucleus & plasma membrane,7 Very high , 1""" # Create the dataframe df = pd.read_csv(StringIO(data)) df['Localization'].str.strip() df['RNA level'].str.strip() df['Size'].astype(int) df['Percent'] = df.groupby('Localization')['Size'].transform(lambda x: x/sum(x))
-
pandas groupby查找正确和错误的百分比
2021-01-29 关注 0 浏览62 1答案
-
熊猫分组比:高于阈值的百分比
2021-01-29 关注 0 浏览84 1答案
-
使用 groupby 的 Pandas 占总数的百分比
2022-07-28 关注 0 浏览22 1答案
-
Python-pandas与groupby占总数的百分比
2021-02-02 关注 0 浏览207 1答案
-
将每个值都放在熊猫的百分比中
2021-01-29 关注 0 浏览62 1答案
-
Amazon ECS中的最小健康百分比和最大百分比是多少
2021-02-01 关注 0 浏览294 1答案
-
熊猫非常简单来自分组依据的总大小的百分比
2021-01-29 关注 0 浏览79 1答案
-
MySQL计算百分比
2021-02-02 关注 0 浏览136 1答案
-
Elasticsearch分析百分比
2021-02-01 关注 0 浏览172 1答案
-
Python打印状态栏和百分比
2022-03-22 关注 0 浏览39 1答案