python multiindex函数

  • Post category:Python

下面是Python MultiIndex函数的完整攻略:

1. MultiIndex的概念

MultiIndex是pandas数据框架中的一个对象,主要用于在数据框架中创建具有多个级别的索引。在创建多级索引后,可以使用这个索引来对数据进行切片、排序、计算等操作。

2. MultiIndex的创建

MultiIndex可以通过以下三种方式进行创建:

2.1 从元祖创建

可以通过一个元祖的列表来创建MultiIndex。每个元祖代表一个具有多层级的行或者列。

例如,下面的代码创建了一个MultiIndex,索引的第一层级为people,第二层级为age:

import pandas as pd

arrays = [['people', 'people', 'people', 'animal', 'animal', 'animal'],
          ['age', 'height', 'weight', 'age', 'height', 'weight']]
tuples = list(zip(*arrays))
index = pd.MultiIndex.from_tuples(tuples)

2.2 从数组创建

可以通过一个包含多个数组的列表来创建MultiIndex。每个数组代表一个具有多层级的行或者列。

例如,下面的代码创建了一个MultiIndex,索引的第一层级为animal和people,第二层级为height和weight:

import pandas as pd

arrays = [['animal', 'animal', 'people', 'people'],
          ['height', 'weight', 'height', 'weight']]
index = pd.MultiIndex.from_arrays(arrays)

2.3 从字典创建

可以通过一个字典来创建MultiIndex。字典的键表示多级的行或列索引的级别,值是包含这个索引级别标签的列表。

例如,下面的代码创建了一个MultiIndex,索引的第一层级为lab和cafe,第二层级为A和B:

import pandas as pd

levels = {'lvl0': ['lab', 'lab', 'cafe', 'cafe'], 'lvl1': ['A', 'B', 'A', 'B']}
index = pd.MultiIndex.from_frame(pd.DataFrame(levels))

3. MultiIndex的索引和切片

可以使用MultiIndex对数据进行切片、过滤、排序等操作。例如,下面的代码展示了如何将MultiIndex应用于数据切片:

import pandas as pd
import numpy as np

arrays = [['animal', 'animal', 'people', 'people'],
          ['height', 'weight', 'height', 'weight']]

index = pd.MultiIndex.from_arrays(arrays)

df = pd.DataFrame(np.random.randint(10, size=(4, 2)), index=index, columns=['one', 'two'])
print(df.loc[('animal', 'height')]) # 输出animal和height所对应的行

4. MultiIndex的操作

MultiIndex可以与其他pandas函数一起使用,进行数据的操作。例如,可以使用groupby函数对MultiIndex数据进行分组:

import pandas as pd
import numpy as np

arrays = [['animal', 'animal', 'people', 'people'],
          ['height', 'weight', 'height', 'weight']]

index = pd.MultiIndex.from_arrays(arrays)

df = pd.DataFrame(np.random.randint(10, size=(4, 2)), index=index, columns=['one', 'two'])

grouped = df.groupby(level=0).sum() # 按照第一层级进行分组并求和
print(grouped)

以上就是Python MultiIndex函数的完整攻略,希望对你有所帮助。