基于标签的Pandas数据框架索引

基于标签的Pandas数据框架索引

索引在数据框架中起着重要的作用。有时候,我们需要给Pandas数据框架提供一个基于标签的 “花式索引”。为此,我们在pandas中有一个函数被称为pandas.DataFrame.lookup()。花式索引的概念很简单,这意味着,我们必须传递一个索引数组来一次访问多个数组元素。

pandas.DataFrame.lookup()函数将等长的行和列标签数组作为其属性,并返回每个(行,列)对所对应的值数组。

语法: DataFrame.lookup(row_labels, col_labels)

参数:
row_labels – 用于查找的行标签。
col_labels – 用于查找的列标签。

返回值:
numpy.ndarray

示例 1:

# importing pandas library
import pandas as pd
  
# Creating a Data frame
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'))
  
# Display Data frame
df
Python

输出:

基于标签的Pandas数据框架索引

# Use concept of fancy indexing to make new 
# column 'Value' in data frame 
# with help of dataframe.lookup() function
df['Value'] = df.lookup(df.index, df['Alpha'])
  
# Modified Data frame
df
Python

输出:

基于标签的Pandas数据框架索引

在上面的例子中,我们使用基于标签的花式索引的概念来一次访问数据框架的多个元素,因此使用函数dataframe.lookup()创建一个新的列’Value’。

示例 2:

# importing pandas library
import pandas as pd
  
# Creating a Data frame
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'))
  
# Display Data frame
df
Python

输出:

基于标签的Pandas数据框架索引

# Use concept of fancy indexing to make two
# new columns in data frame with help of
# dataframe.lookup() function
df['Age'] = df.lookup(df.index, df['Name'])
df['Marks'] = df.lookup(df.index, df['Aname'])
  
# Modified Data frame
df
Python

输出:

基于标签的Pandas数据框架索引

在上面的例子中,我们使用基于标签的花式索引的概念来一次访问数据框架的多个元素,因此使用函数dataframe.lookup()创建了两列新的’Age’和’Marks’ 。

示例 3:

# importing pandas library
import pandas as pd
  
# Creating a Data frame
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'))
  
# Display Data frame
df
Python

输出:

基于标签的Pandas数据框架索引

# Use concept of fancy indexing to make two 
# three columns in data frame with help of
# dataframe.lookup() function
df['Age'] = df.lookup(df.index, df['Name'])
df['Height'] = df.lookup(df.index, df['Alpha'])
df['Date_of_Birth'] = df.lookup(df.index, df['Year'])
      
# Modified Data frame
df
Python

输出:

基于标签的Pandas数据框架索引

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

这三个例子都展示了花式索引的工作原理,以及我们如何使用花式索引与dataframe.lookup()函数一起创建新的列。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册