首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

pandas df按多列分组的百分比计数

pandas是Python中一个强大的数据分析库,提供了丰富的数据处理和分析工具。在pandas中,可以使用DataFrame(df)对象来表示和操作数据。

要按多列分组并计算百分比计数,可以使用pandas的groupby函数结合value_counts和transform函数来实现。

首先,使用groupby函数按多列进行分组。可以传入一个包含多个列名的列表作为groupby函数的参数,例如:

代码语言:txt
复制
grouped = df.groupby(['列名1', '列名2'])

然后,使用value_counts函数对分组后的数据进行计数。可以将value_counts函数应用于分组对象的某一列,例如:

代码语言:txt
复制
counted = grouped['某一列'].value_counts()

接下来,使用transform函数将计数结果转换为百分比。可以将transform函数应用于分组对象的某一列,然后使用div函数将计数结果除以总数,例如:

代码语言:txt
复制
percentage = counted.groupby(level=0).transform(lambda x: x / x.sum())

最后,将百分比计数结果添加到原始DataFrame中,可以使用assign函数将结果赋值给一个新列,例如:

代码语言:txt
复制
df = df.assign(百分比计数=percentage)

这样,就可以得到按多列分组的百分比计数结果。

pandas的优势在于其简洁而强大的API,可以方便地进行数据处理和分析。它适用于各种数据分析场景,包括数据清洗、数据转换、数据聚合等。腾讯云提供了云服务器、云数据库、云存储等多种产品,可以满足不同场景下的数据处理和分析需求。

更多关于pandas的信息和使用方法,可以参考腾讯云的文档: pandas官方文档 pandas API文档

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Python-科学计算-pandas-14-df进行转换

Python科学计算及可视化 今天讲讲pandas模块 将Df进行转换 Part 1:目标 最近在网站开发过程中,需要将后端Df数据,渲染到前端Datatables,前端识别的数据格式有以下特征...- 数据格式为一个列表 - 列表中每一个元素为一个字典,每个字典对应前端表格一行 - 单个字典键为前端表格列名,字典值为前端表格每值 简单来说就是要将一个Df转换为一个列表,该列表有特定格式...表示记录,对应数据库行 Part 4:延伸 以上方法将Df行转换,那么是否可以进行转换呢?...查了下orient参数,发现可以取值参数非常,如下图所示 发现list满足需求,观察实际输出结果,生成一个字典。...字典键为列名,值为一个列表,该列表对应df一个 dict_fields = df_1.to_dict(orient='list') print(dict_fields) ? list对应结果 ?

1.9K30

盘点一个Pandas分组问题

一、前言 前几天在Python白银交流群【在途中要勤奋熏肉肉】问了一道Pandas处理问题,如下图所示。...原始数据如下图所示: 下面是她自己写代码: # df['name'] = df['name'].str.lower() test['pid'] = test['pid'].astype(int) test...'-'.join(set(s)), } testdf = test.groupby(test['pid']).aggregate(aggregate_funcs) print(testdf) 目前大概思路如下...顺利地解决了粉丝问题。 三、总结 大家好,我是皮皮。这篇文章主要盘点了一道使用Pandas处理数据问题,文中针对该问题给出了具体解析和代码实现,帮助粉丝顺利解决了问题。...最后感谢粉丝【在途中要勤奋熏肉肉】提问,感谢【月神】给出思路和代码解析,感谢【dcpeng】、【猫药师Kelly】等人参与学习交流。

1.1K10

Pandas数据分组函数应用(df.apply()、df.agg()和df.transform()、df.applymap())

3种方法: apply():逐行或逐应用该函数 agg()和transform():聚合和转换 applymap():逐元素应用函数 apply()函数 介绍 apply函数是pandas里面所有函数中自由度最高函数...axis=0,表示将一数据作为Series数据结构传入给定function中 print(t1) t2 = df.apply(f, axis=1) print(t2) 输出结果如下所示...>>> type(df['score_math'].apply(np.mean)) #逐行求每个学生平均分 >>> df.apply...()特例,可以对pandas对象进行逐行或逐处理; 能使用agg()地方,基本上都可以使用apply()代替。...Series对象进行了map()操作 通过以上分析我们可以看到,apply、agg、transform三种方法都可以对分组数据进行函数操作,但也各有特色,总结如下: apply中自定义函数对每个分组数据单独进行处理

2.2K10

9个value_counts()小技巧,提高Pandas 数据分析效率

默认参数 升序对结果进行排序 字母顺序排列结果 结果中包含空值 以百分比计数显示结果 将连续数据分入离散区间 分组并调用 value_counts() 将结果系列转换为 DataFrame 应用于DataFrame...默认情况下,结果系列降序排列,不包含任何 NA 值。例如,让我们从 Titanic 数据集中获取“Embarked”计数。...: int64 3、字母顺序排列结果 我们已经学习了参数升序以获得计数 ASC 或 DESC 排序结果。..., dtype: int64 5、以百分比计数显示结果 在进行探索性数据分析时,有时查看唯一值百分比计数会更有用。...一个常见用例是某个分组,然后获取另一唯一值计数。例如,让我们“Embarked”分组并获取不同“Sex”值计数

6.5K61

9个value_counts()小技巧,提高Pandas 数据分析效率

1、默认参数 2、升序对结果进行排序 3、字母顺序排列结果 4、结果中包含空值 5、 以百分比计数显示结果 6、将连续数据分入离散区间 7、分组并调用 value_counts() 8、将结果系列转换为...默认情况下,结果系列降序排列,不包含任何 NA 值。例如,让我们从 Titanic 数据集中获取“Embarked”计数。...: int64 3、字母顺序排列结果 我们已经学习了参数升序以获得计数 ASC 或 DESC 排序结果。..., dtype: int64 5、以百分比计数显示结果 在进行探索性数据分析时,有时查看唯一值百分比计数会更有用。...一个常见用例是某个分组,然后获取另一唯一值计数。例如,让我们“Embarked”分组并获取不同“Sex”值计数

2.4K20

9个value_counts()小技巧,提高Pandas 数据分析效率

默认参数 升序对结果进行排序 字母顺序排列结果 结果中包含空值 以百分比计数显示结果 将连续数据分入离散区间 分组并调用 value_counts() 将结果系列转换为 DataFrame 应用于DataFrame...默认情况下,结果系列降序排列,不包含任何 NA 值。例如,让我们从 Titanic 数据集中获取“Embarked”计数。  ...int64 3、字母顺序排列结果 我们已经学习了参数升序以获得计数 ASC 或 DESC 排序结果。..., dtype: int64 5、以百分比计数显示结果 在进行探索性数据分析时,有时查看唯一值百分比计数会更有用。...一个常见用例是某个分组,然后获取另一唯一值计数。例如,让我们“Embarked”分组并获取不同“Sex”值计数

2.6K20

数据分组

1.分组键是列名 分组键是列名时直接将某一列名传给 groupby() 方法,groupby() 方法就会按照这一进行分组。...参数: ①分组键是列名: 单个列名直接写(进行分组),多个列名以列表形式传入(这就是进行分 组)。...""" (1)进行分组 import pandas as pd df = pd.DataFrame([[99,"A类","一线城市","是",6,20,0],...求众数、var 求方差、std 求标准差、quantile 求分位数 (2)进行分组 进行分组,只要将多个列名以列表形式传给 groupby() 即可。...df.groupby(["客户分类","区域"]).sum() #只会对数据类型为数值(int,float)才会进行运算 无论分组键是一还是,只要直接在分组数据进行汇总运算,就是对所有可以计算进行计算

4.5K11

python数据分析——数据分类汇总与统计

1.1分组 分组分为以下三种模式: 第一种: df.groupby(col),返回一个进行分组groupby对象; 第二种: df.groupby([col1,col2]),返回一个进行分组...groupby对象; 第三种: df.groupby(col1)[col2]或者 df[col2].groupby(col1),两者含义相同,返回col1进行分组后col2值; 首先生成一个表格型数据集...gg = df.groupby(df['key1']) gg 【例1】采用函数df.groupby(col),返回一个进行分组groupby对象。...print(list(gg)) 【例2】采用函数df.groupby([col1,col2]),返回一个进行分组groupby对象。...关键技术: df.groupby(col1)[col2]或者df[col2].groupby(col1),两者含义相同,返回col1进行分组后,col2值。

12810

数据科学家私藏pandas高阶用法大全 ⛵

, 8, 9] df # df doesn't change 图片 2:Groupby().count 与 Groupby().size 如果你想获得 Pandas 计数统计,可以使用groupby...和count组合,如果要获取2或更多组成分组计数,可以使用groupby和size组合。...:归一化值计数 大家都知道,我们可以使用value_counts获取取值计数,但是,如果要获取中某个值百分比,我们可以添加normalize=True至value_counts参数设置来完成:...如下例,我们可以使用pandas.melt()将(“Aldi”、“Walmart”、“Costco”)转换为一(“store”)值。...在以下示例中,创建了一个新排名列,该学生分数对学生进行排名: import pandas as pd df = pd.DataFrame({'Students': ['John', 'Smith

6K30

快速介绍Python数据分析库pandas基础知识和代码示例

本附注结构: 导入数据 导出数据 创建测试对象 查看/检查数据 选择查询 数据清理 筛选、排序和分组计数据 首先,我们需要导入pandas开始: import pandas as pd 导入数据...info()函数用于获取标题、值数量和数据类型等一般信息。一个类似但不太有用函数是df.dtypes只给出列数据类型。...通常回根据一个或多个值对panda DataFrame进行排序,或者根据panda DataFrame行索引值或行名称进行排序。 例如,我们希望学生名字升序排序。...计算性别分组所有平均值 average = df.groupby(‘Sex’).agg(np.mean) ? 统计数据 我们可能熟悉Excel中数据透视表,可以轻松地洞察数据。...假设我们想性别将值分组,并计算物理和化学平均值和标准差。

8.1K20

Pandas速查手册中文版

s.value_counts(dropna=False):查看Series对象唯一值和计数 df.apply(pd.Series.value_counts):查看DataFrame对象中每一唯一值和计数...数据选取 df[col]:根据列名,并以Series形式返回 df[[col1, col2]]:以DataFrame形式返回 s.iloc[0]:位置选取数据 s.loc['index_one...,后col2降序排列数据 df.groupby(col):返回一个col进行分组Groupby对象 df.groupby([col1,col2]):返回一个进行分组Groupby对象 df.groupby...(col1)[col2]:返回col1进行分组后,col2均值 df.pivot_table(index=col1, values=[col2,col3], aggfunc=max):创建一个...col1进行分组,并计算col2和col3最大值数据透视表 df.groupby(col1).agg(np.mean):返回col1分组所有均值 data.apply(np.mean):对

12.1K92

首次公开,用了三年 pandas 速查表!

,汇总 df.loc['col_sum'] = df.apply(lambda x: x.sum()) # 指定列表顺序显示 df.reindex(order_list) # 指定排序 df.reindex...形式返回 df.loc[df['team'] == 'B',['name']] # 条件查询,只显示name s.iloc[0] # 位置选取数据 s.loc['index_one'] #...返回一个col进行分组Groupby对象 df.groupby([col1,col2]) # 返回一个进行分组Groupby对象 df.groupby(col1)[col2] # 返回...col1进行分组后,col2均值 # 创建一个col1进行分组,并计算col2和col3最大值数据透视表 df.pivot_table(index=col1,...(col1).agg(np.mean) # 返回col1分组所有均值 # 将其他转行 pd.melt(df, id_vars=["day"], var_name='city', value_name

7.4K10

Pandas 进行数据处理系列 二

获取指定和行 import pandas as pd df = pd.read_csv('xxxx.xls') 获取行操作df.loc[3:6]获取操作df['rowname']取两df[['...loc函数标签值进行提取iloc位置进行提取ix可以同时标签和位置进行提取 具体使用见下: df.loc[3]索引提取单行数值df.iloc[0:5]索引提取区域行数据值df.reset_index...= 'beijing'), ['id', 'city', 'age']].sort(['id']) 筛选后灵气 city 进行计数 df.loc[(df['city'] !...df.groupby(‘city’).count() city 分组后进行数据汇总df.groupby(‘city’)[‘id’].count() city 进行分组,然后汇总 id 数据df.groupby...= df.groupby('Country') for index, data in df_gb: print(index) print(data) 分组 import pandas

8.1K30

妈妈再也不用担心我忘记pandas操作了

) # 查看DataFrame对象中每一唯一值和计数 数据选取: df[col] # 根据列名,并以Series形式返回 df[[col1, col2]] # 以DataFrame形式返回...=[True,False]) # 先按col1升序排列,后col2降序排列数据 df.groupby(col) # 返回一个col进行分组Groupby对象 df.groupby([col1,...col2]) # 返回一个进行分组Groupby对象 df.groupby(col1)[col2] # 返回col1进行分组后,col2均值 df.pivot_table(index=col1..., values=[col2,col3], aggfunc=max) # 创建一个col1进行分组,并计算col2和col3最大值数据透视表 df.groupby(col1).agg(np.mean...) # 返回col1分组所有均值 data.apply(np.mean) # 对DataFrame中每一应用函数np.mean data.apply(np.max,axis=1) # 对DataFrame

2.2K31

Pandas速查卡-Python数据科学

df.info() 索引,数据类型和内存信息 df.describe() 数值汇总统计信息 s.value_counts(dropna=False) 查看唯一值和计数 df.apply(pd.Series.value_counts...) 所有唯一值和计数 选择 df[col] 返回一维数组col df[[col1, col2]] 作为新数据框返回 s.iloc[0] 位置选择 s.loc['index_one'] 索引选择...df.groupby(col) 从一返回一组对象df.groupby([col1,col2]) 从返回一组对象df.groupby(col1)[col2] 返回col2中平均值...,col1中分组(平均值可以用统计部分中几乎任何函数替换) df.pivot_table(index=col1,values=[col2,col3],aggfunc=max) 创建一个数据透视表...,col1分组并计算col2和col3平均值 df.groupby(col1).agg(np.mean) 查找每个唯一col1组所有平均值 data.apply(np.mean) 在每个列上应用函数

9.2K80

总结了67个pandas函数,完美解决数据处理,拿来即用!

Series对象唯⼀值和计数 df.apply(pd.Series.value_counts) # 查看DataFrame对象中每⼀唯⼀值和计数 df.isnull().any() # 查看是否有缺失值...df[col] # 根据列名,并以Series形式返回 df[[col1,col2]] # 以DataFrame形式返回 s.iloc[0] # 位置选取数据 s.loc['index_one...col2降序排列数据 df.groupby(col) # 返回⼀个col进⾏分组Groupby对象 df.groupby([col1,col2]) # 返回⼀个进⾏分组Groupby对象...df.groupby(col1)[col2].agg(mean) # 返回col1进⾏分组后,col2均值,agg可以接受列表参数,agg([len,np.mean]) df.pivot_table...、最⼩值数据透视表 df.groupby(col1).agg(np.mean) # 返回col1分组所有均值,⽀持 df.groupby(col1).col2.agg(['min','max

3.5K30

数据整合与数据清洗

选择。ix、iloc、loc方法都可使用。 只不过ix和loc方法,行索引是前后都包括,而索引则是前包后不包(与列表索引一致)。 iloc方法则和列表索引一致,前包后不包。...# 删除单列 print(df.drop('date', axis=1)) # 删除 print(df.drop(['praise', 'date'], axis=1)) 输出结果。 ? ?...05 排序 Pandas排序方法有以下三种。 sort_values、sort_index、sortlevel。 第一个表示值排序,第二个表示索引排序,第三个表示级别排序。...# 对性别分组,汇总点赞数,获取点赞数最大值 print(df.groupby('gender')[['praise']].max()) # 对性别和年龄分组,获取点赞数平均值 print(df.groupby...'age']].mean()) # 对性别分组,获取性别的计数值 print(df.groupby(['gender'])[['gender']].count()) # 多重索引 print(df.groupby

4.6K30
领券