📅  最后修改于: 2023-12-03 15:33:23.943000             🧑  作者: Mango
Pandas 是 Python 数据分析库中的一员,在数据分析领域有着广泛的应用,其支持多种数据格式的读写并提供各种实用的数据操作功能。在 Pandas 中,多索引和 groupbys 是非常有用的功能,可以轻松地对数据进行聚合和分组操作。
在 Pandas 中,可以使用多个索引来表示数据结构中的多维数据。多索引可以用来处理多维数据集,从而可以进行各种复杂的数据操作。在 Pandas 中,有两种类型的多索引,分别为行多索引和列多索引。
在 Pandas 中,可以使用多个索引来表示数据结构中的多维数据。多索引可以用来处理多维数据集,从而可以进行各种复杂的数据操作。在 Pandas 中,有两种类型的多索引,分别为行多索引和列多索引。行多索引可以使用 set_index() 方法在 DataFrame 中设置。下面是一个简单的例子:
import pandas as pd
# 创建 DataFrame
df = pd.DataFrame({'A': ['a', 'b', 'c', 'd'], 'B': ['x', 'y', 'z', 'w'], 'C': [1, 2, 3, 4]})
# 设置行多索引
df = df.set_index(['A', 'B'])
print(df)
输出结果:
C
A B
a x 1
b y 2
c z 3
d w 4
与行多索引类似,列多索引可以用来处理多维数据集。在 Pandas 中,可以使用 MultiIndex 类来实现列多索引。下面是一个简单的例子:
import pandas as pd
import numpy as np
# 创建 DataFrame
arrays = [np.array(['bar', 'bar', 'baz', 'baz', 'foo', 'foo', 'qux', 'qux']),
np.array(['one', 'two', 'one', 'two', 'one', 'two', 'one', 'two'])]
df = pd.DataFrame(np.random.randn(6, 8), index=['A', 'B', 'C', 'D', 'E', 'F'], columns=arrays)
print(df)
输出结果:
bar baz foo qux
one two one two one two one two
A -0.293377 -1.194068 0.595988 0.602897 -0.130435 -0.457330 -0.588327 -0.240699
B -1.038854 -1.048537 0.975462 1.333548 0.250734 0.318879 -0.133570 0.280765
C -1.193156 -0.145971 -0.031079 1.725091 -0.841629 -1.316279 0.596818 -1.759583
D 0.758662 -1.009945 -0.469242 -0.486047 -1.344478 0.603023 -2.004858 2.162077
E 1.388672 -0.206166 0.489461 0.720231 -1.010256 -0.763115 -0.466238 -0.932080
F 0.019917 0.785461 1.072226 1.104036 -0.590791 0.248911 0.634834 1.363619
groupbys 是 Pandas 中的另一个强大功能,它可以将数据根据指定的标准分组,并对每个组进行聚合、变换和过滤操作,从而得到所需的结果。在 Pandas 中,可以使用 groupby() 方法进行分组。下面是一个简单的例子:
import pandas as pd
# 创建 DataFrame
data = {'Animal': ['Dog', 'Cat', 'Dog', 'Cat', 'Dog'],
'Age': [4, 5, 2, 3, 6]}
df = pd.DataFrame(data)
# 按 Animal 分组
grouped = df.groupby(['Animal'])
# 统计每个分组的平均年龄
mean_age = grouped['Age'].mean()
print(mean_age)
输出结果:
Animal
Cat 4.0
Dog 4.0
Name: Age, dtype: float64
除了对每个分组进行统计之外,还可以对所有分组进行聚合操作。Pandas 中常用的聚合操作包括:sum、max、min、mean、count、size 等。下面是一个简单的例子:
import pandas as pd
# 创建 DataFrame
data = {'Animal': ['Dog', 'Cat', 'Dog', 'Cat', 'Dog'],
'Age': [4, 5, 2, 3, 6]}
df = pd.DataFrame(data)
# 按 Animal 分组并统计每个分组的总年龄
sum_age = df.groupby(['Animal'])['Age'].sum()
print(sum_age)
输出结果:
Animal
Cat 8
Dog 12
Name: Age, dtype: int64
多索引和 groupbys 是 Pandas 中非常实用的功能,它们可以帮助我们轻松地对数据进行聚合和分组操作。在实际的数据分析中,我们通常会用到这些功能。