基于标签的Pandas数据框架索引
索引在数据框架中起着重要的作用。有时候,我们需要给Pandas数据框架提供一个基于标签的 “花式索引”。为此,我们在pandas中有一个函数被称为pandas.DataFrame.lookup()。花式索引的概念很简单,这意味着,我们必须传递一个索引数组来一次访问多个数组元素。
pandas.DataFrame.lookup()函数将等长的行和列标签数组作为其属性,并返回每个(行,列)对所对应的值数组。
语法: DataFrame.lookup(row_labels, col_labels)
参数:
row_labels – 用于查找的行标签。
col_labels – 用于查找的列标签。
返回值:
numpy.ndarray
示例 1:
import pandas as pd
df = pd.DataFrame([['1993', 'x', 5, 4, 7, 2],
['1994', 'v', 10, 1, 2, 0],
['1995', 'z', 2, 1, 4, 12],
['1996', 'y', 2, 1, 10, 1],
['1998', 'x', 2, 10, 40, 12],
['1999', 'x', 5, 8, 11, 6]],
columns=('Year', 'Alpha', 'x', 'y', 'z', 'v'))
df
输出:

输出:

在上面的例子中,我们使用基于标签的花式索引的概念来一次访问数据框架的多个元素,因此使用函数dataframe.lookup()创建一个新的列’Value’。
示例 2:
import pandas as pd
df = pd.DataFrame([['1993', 'Avi', 5, 41, 70, 'Bob'],
['1994', 'Cathy', 10, 1, 22, 'Cathy'],
['1995', 'Cathy', 24, 11, 44, 'Bob'],
['1996', 'Bob', 2, 11, 10, 'Avi'],
['1998', 'Avi', 20, 10, 40, 'Avi'],
['1999', 'Avi', 50, 8, 11, 'Cathy']],
columns=('Patients', 'Name', 'Avi', 'Bob', 'Cathy', 'Aname'))
df
输出:

输出:

在上面的例子中,我们使用基于标签的花式索引的概念来一次访问数据框架的多个元素,因此使用函数dataframe.lookup()创建了两列新的’Age’和’Marks’ 。
示例 3:
import pandas as pd
df = pd.DataFrame([['Date1', 1850, 1992,'Avi', 5, 41, 70, 'Avi'],
['Date2', 1896, 1950, 'Cathy', 10, 1, 22, 'Avi'],
['Date2', 1900, 1920, 'Cathy', 24, 11, 44, 'Cathy'],
['Date1', 1889, 1960, 'Bob', 2, 11, 10, 'Bob'],
['Date2', 1910, 1952, 'Avi', 20, 10, 40, 'Bob'],
['Date1', 1999, 1929, 'Avi', 50, 8, 11, 'Cathy']],
columns=('Year', 'Date1', 'Date2', 'Name', 'Avi',
'Bob', 'Cathy', 'Alpha'))
df
输出:

输出:

在上面的例子中,我们使用基于标签的花式索引的概念来一次访问数据框架中的多个元素,因此使用函数dataframe.lookup()创建了两列新的 “年龄”、”高度 “和 “出生日期”。
这三个例子都展示了花式索引的工作原理,以及我们如何使用花式索引与dataframe.lookup()函数一起创建新的列。