pandas实现按行选择的示例代码

1. pandas实现按行选择的示例

在pandas中,我们可以非常方便地实现对DataFrame表格按照行或列进行选择和筛选。其中,按行选择常用的方法有iloc和loc两种。下面我们将介绍这两种方法,以及如何基于实际数据进行行选择。

1.1 iloc方法

iloc方法是根据所在的行和列的位置进行选择的。比如,iloc[0]表示选择DataFrame的第一行,iloc[1]表示选择第二行,以此类推。

import pandas as pd 

data = {'name': ['Tom', 'John', 'Alan', 'Lily', 'Lucy'],

'age': [20, 21, 22, 23, 24],

'city': ['Beijing', 'Shanghai', 'Guangzhou', 'Shenzhen', 'Chengdu']

}

df = pd.DataFrame(data)

print(df.iloc[0]) #选择第一行

print(df.iloc[1]) #选择第二行

输出结果为:

name Tom

age 20

city Beijing

Name: 0, dtype: object

name John

age 21

city Shanghai

Name: 1, dtype: object

其中iloc[0]选中了DataFrame的第一行,输出结果中的索引为0表示该行的位置。

1.2 loc方法

loc方法则是根据DataFrame的index和column标签进行选择的。该方法的前提是DataFrame的index和column必须是标签形式。比如,假设我们将数据表中的name列作为index,那么我们就可以使用df.loc['Tom']来选择数据表中name为Tom的那行数据。

import pandas as pd 

data = {'name': ['Tom', 'John', 'Alan', 'Lily', 'Lucy'],

'age': [20, 21, 22, 23, 24],

'city': ['Beijing', 'Shanghai', 'Guangzhou', 'Shenzhen', 'Chengdu']

}

df = pd.DataFrame(data)

df_new = df.set_index('name') #将name列作为index

print(df_new.loc['Tom']) #选择name为Tom的行

print(df_new.loc[['Tom', 'John']]) #选择name为Tom和John的行

输出结果为:

age 20

city Beijing

Name: Tom, dtype: object

age city

name

Tom 20 Beijing

John 21 Shanghai

在上面的代码中,我们使用了set_index方法将name列作为DataFrame表格的index。使用loc方法选中name为Tom的那一行,并输出了结果。此时索引为名称而非序号。

1.3 基于数据的行选择

除了上述介绍的按行位置和标签进行数据行选择外,pandas还支持基于数据本身进行选择。换句话说,我们可以通过条件筛选的方式选出符合条件的数据行。比如,我们可以找出年龄大于20岁的人的记录。

import pandas as pd 

data = {'name': ['Tom', 'John', 'Alan', 'Lily', 'Lucy'],

'age': [20, 21, 22, 23, 24],

'city': ['Beijing', 'Shanghai', 'Guangzhou', 'Shenzhen', 'Chengdu']

}

df = pd.DataFrame(data)

df_new = df[df['age'] > 20] #找出年龄大于20的记录

print(df_new)

输出结果为:

name age city

1 John 21 Shanghai

2 Alan 22 Guangzhou

3 Lily 23 Shenzhen

4 Lucy 24 Chengdu

在上面的代码中,我们使用了df['age'] > 20的方式找出了年龄大于20的记录,然后使用df[df['age'] > 20]来选出符合条件的数据行。

1.4 按行选择总结

按行选择是数据分析和建模中常用的操作。pandas提供了非常方便的使用选择方法,其中根据位置的iloc方法和根据标签的loc方法是最基本的方法。此外,pandas还支持按照数据进行选择的方式,比如通过条件筛选选出符合条件的数据行。在实际使用中,我们需要结合具体的需求选择最合适的方法。

以上就是关于pandas实现按行选择的示例代码的详细讲解。

后端开发标签