hand
98
_1_21_86
4
python3.X - 数据分析 - Pandas
共95篇
python3.X - 数据分析 - Pandas
返回栏目
1k
0k
5k
0k
0.1k
0k
2k
3k
1k
1k
0.2k
3k
0k
4k
3k
3k
3k
3k
0.5k
5k
1k
0.3k
3k
4k
7k
2k
7k
0.8k
0.9k
1k
1k
2k
0.4k
0.6k
0.6k
0.5k
0.9k
0.9k
1k
0.9k
1k
0.8k
1k
0.4k
0.4k
0.3k
0.6k
1k
0.9k
1k
1k
1k
0.8k
1k
0.8k
1k
0.7k
0.6k
4k
0.4k
3k
0.7k
0.8k
0.8k
0.2k
2k
1k
0.7k
0.7k
0.4k
0.5k
3k
0.1k
0.7k
0.9k
0.3k
1k
0.4k
0.4k
1k
0.5k
0.1k
0.7k
1k
0k
0.2k
0.7k
0.3k
0k
0k
0.1k
0k
0k
0k
3k
返回python3.X - 数据分析 - Pandas栏目
作者:
贺及楼
成为作者
更新日期:2025-01-08 19:26:27
import numpy as np
import pandas as pd
df = pd.DataFrame([{'类别': '黄水果', '水果': '香蕉', '点赞': 14, '投币': 7}, {'类别': '黄水果', '水果': '菠萝', '点赞': 30, '投币': 15}, {'类别': '黄水果', '水果': '柠檬', '点赞': 50, '投币': 25}, {'类别': '红水果', '水果': '草莓', '点赞': 160, '投币': 80}, {'类别': '红水果', '水果': '苹果', '点赞': 6, '投币': 3}, {'类别': '红水果', '水果': '樱桃', '点赞': 8, '投币': 4}])
类别 | 水果 | 点赞 | 投币 | |
---|---|---|---|---|
0 | 黄水果 | 香蕉 | 14 | 7 |
1 | 黄水果 | 菠萝 | 30 | 15 |
2 | 黄水果 | 柠檬 | 50 | 25 |
3 | 红水果 | 草莓 | 160 | 80 |
4 | 红水果 | 苹果 | 6 | 3 |
5 | 红水果 | 樱桃 | 8 | 4 |
grouped = df1.groupby(['类别','水果'])
<pandas.core.groupby.generic.DataFrameGroupBy object at 0x7feea03249d0>
方法 | 说明 |
---|---|
agg_df = df.groupby(['类别'])['点赞'].agg('mean') |
单维单列单值 |
agg_df = df.groupby(['类别']).agg('mean') |
单维双列单值 |
agg_df = df.groupby(['类别'])['点赞'].agg(['min','max']) |
单维单列双值 |
agg_df = df.groupby(['类别'])['点赞'].agg([('最小值','min'),('最大值','max')]) |
单维单列双值改名 |
agg_df = df.groupby(['类别']).agg({'点赞':['sum','mean'], '投币':['min','max']}) |
单维双列双值 |
agg_df = df.groupby(['类别', '水果']).agg({'点赞':['sum','mean'], '投币':['min','max']}) |
多维双列双值 |
函数名 | 说明 |
---|---|
count或size | 分组中非NA值得数量 |
sum | 非NA值的和 |
mean | 非NA值的平均值 |
median | 非NA值的算术平均数(中位数) |
std、var | 无偏(分母为n-1)标准差和方差 |
min、max | 非NA值的最小值和最大值 |
prod | 非NA值的积 |
first、last | 第一个和最后一个非NA值 |
单维’类别’ - 单列’点赞’ - 求单值平均数mean
agg_df = df.groupby(['类别'])['点赞'].agg('mean')
类别 | |
---|---|
红水果 | 58.000000 |
黄水果 | 31.333333 |
Name: 点赞, dtype: float64
单维’类别’ - 双列’点赞’、’投币’ - 求单值平均数mean
agg_df = df.groupby(['类别']).agg('mean')
点赞 | 投币 | |
---|---|---|
类别 | ||
红水果 | 58.000000 | 29.000000 |
黄水果 | 31.333333 | 15.666667 |
单维’类别’ - 单列’点赞’ - 求双值最大值max、最小值min
agg_df = df.groupby(['类别'])['点赞'].agg(['min','max'])
agg_df = df.groupby(['类别'])['点赞'].agg([('最小值','min'),('最大值','max')])
min | max | |
---|---|---|
类别 | ||
红水果 | 6 | 160 |
黄水果 | 14 | 50 |
最小值 | 最大值 | |
---|---|---|
类别 | ||
红水果 | 6 | 160 |
黄水果 | 14 | 50 |
单维’类别’ - 双列’点赞’、’投币’ - 求多值最大值max、最小值min、平均值mean、和sum
agg_df = df.groupby(['类别']).agg({'点赞':['sum','mean'], '投币':['min','max']})
点赞 | 投币 | |||
---|---|---|---|---|
sum | mean | min | max | |
类别 | ||||
红水果 | 174 | 58.000000 | 3 | 80 |
黄水果 | 94 | 31.333333 | 7 | 25 |
多维’类别’,’水果’ - 双列’点赞’、’投币’ - 求多值最大值max、最小值min、平均值mean、和sum
agg_df = df.groupby(['类别', '水果']).agg({'点赞':['sum','mean'], '投币':['min','max']})
点赞 | 投币 | ||||
---|---|---|---|---|---|
sum | mean | min | max | ||
类别 | 水果 | ||||
红水果 | 樱桃 | 8 | 8 | 4 | 4 |
苹果 | 6 | 6 | 3 | 3 | |
草莓 | 160 | 160 | 80 | 80 | |
黄水果 | 柠檬 | 50 | 50 | 25 | 25 |
菠萝 | 30 | 30 | 15 | 15 | |
香蕉 | 14 | 14 | 7 | 7 |
## 去掉最上面的Multi-Level
agg_df = agg_df.droplevel(0, axis=1)
## 重复的话,会多个同名列名,需要改名
列级 - df.columns=[“a”,”b”] - 重命名列名
sum | mean | min | max | ||
---|---|---|---|---|---|
类别 | 水果 | ||||
红水果 | 樱桃 | 8 | 8 | 4 | 4 |
苹果 | 6 | 6 | 3 | 3 | |
草莓 | 160 | 160 | 80 | 80 | |
黄水果 | 柠檬 | 50 | 50 | 25 | 25 |
菠萝 | 30 | 30 | 15 | 15 | |
香蕉 | 14 | 14 | 7 | 7 |
agg_df = agg_df.reset_index()
类别 | 水果 | sum | mean | min | max |
---|---|---|---|---|---|
红水果 | 樱桃 | 8 | 8 | 4 | 4 |
红水果 | 苹果 | 6 | 6 | 3 | 3 |
红水果 | 草莓 | 160 | 160 | 80 | 80 |
黄水果 | 柠檬 | 50 | 50 | 25 | 25 |
黄水果 | 菠萝 | 30 | 30 | 15 | 15 |
黄水果 | 香蕉 | 14 | 14 | 7 | 7 |
python3.X - 数据分析 - Pandas
整章节共95节
快分享给你的小伙伴吧 ~