本文主要是介绍Pandas DataFrame聚合操作大揭秘!,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1. DataFrame聚合操作
# 导包
import numpy as np
import pandas as pd
data = np.random.randint(0,100,size=(6,6))
# 行索引
index = pd.MultiIndex.from_tuples(
(
("1班","张三"),("1班","李四"),("1班","王五"),
("2班","鲁班"),("2班","张三丰"),("2班","张无忌")
)
)
# 列索引
columns = pd.MultiIndex.from_tuples(
(
("期中","语文"),("期中","数学"),("期中","英语"),
("期末","语文"),("期末","数学"),("期末","英语")
)
)
df = pd.DataFrame(data=data,index=index,columns=columns)
df
期中 | 期末 | ||||||
---|---|---|---|---|---|---|---|
语文 | 数学 | 英语 | 语文 | 数学 | 英语 | ||
1班 | 张三 | 92 | 30 | 93 | 97 | 28 | 23 |
李四 | 52 | 2 | 19 | 75 | 55 | 8 | |
王五 | 91 | 83 | 58 | 31 | 32 | 55 | |
2班 | 鲁班 | 7 | 75 | 79 | 18 | 55 | 13 |
张三丰 | 75 | 93 | 25 | 93 | 87 | 68 | |
张无忌 | 14 | 89 | 36 | 21 | 59 | 97 |
df2 = df.loc["1班","期中"]
df2
语文 | 数学 | 英语 | |
---|---|---|---|
张三 | 92 | 30 | 93 |
李四 | 52 | 2 | 19 |
王五 | 91 | 83 | 58 |
# axis:默认值为0
df2.sum()
语文 235 数学 115 英语 170
dtype: int64
# 求每一列中多行的和
df2.sum(axis=0)
语文 235 数学 115 英语 170
dtype: int64
# 所有值求和
df2.values.sum()
520
# 求每一行中多列的和
df2.sum(axis=1)
张三 215 李四 73 王五 232
dtype: int64
# 求平均值
df2.mean()
语文 78.333333 数学 38.333333 英语 56.666667
dtype: float64
# 最大值
df2.max()
语文 92 数学 83 英语 93
dtype: int32
# 最小值
df2.min()
语文 52 数学 2 英语 19 dtype: int32
2.多层索引聚合操作
# 导包
import numpy as np
import pandas as pd
data = np.random.randint(0,100,size=(6,6))
# 行索引
index = pd.MultiIndex.from_tuples(
(
("1班","张三"),("1班","李四"),("1班","王五"),
("2班","鲁班"),("2班","张三丰"),("2班","张无忌")
)
)
# 列索引
columns = pd.MultiIndex.from_tuples(
(
("期中","语文"),("期中","数学"),("期中","英语"),
("期末","语文"),("期末","数学"),("期末","英语")
)
)
df = pd.DataFrame(data=data,index=index,columns=columns)
df
期中 | 期末 | ||||||
---|---|---|---|---|---|---|---|
语文 | 数学 | 英语 | 语文 | 数学 | 英语 | ||
1班 | 张三 | 78 | 91 | 60 | 11 | 0 | 51 |
李四 | 6 | 34 | 39 | 91 | 93 | 61 | |
王五 | 24 | 71 | 38 | 67 | 16 | 52 | |
2班 | 鲁班 | 9 | 89 | 51 | 53 | 56 | 5 |
张三丰 | 92 | 76 | 71 | 83 | 34 | 15 | |
张无忌 | 63 | 0 | 58 | 90 | 32 | 94 |
# 默认是求每一列中多行的和
df.sum()
期中 语文 272数学 361英语 317 期末 语文 395数学 231英语 278
dtype: int64
df.sum(axis=0)
期中 语文 272数学 361英语 317 期末 语文 395数学 231英语 278 dtype: int64
# 求每一行多列的和
df.sum(axis=1)
1班 张三 291李四 324王五 268 2班 鲁班 263张三丰 371张无忌 337
dtype: int64
这篇关于Pandas DataFrame聚合操作大揭秘!的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!