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实现按行选择的示例代码的详细讲解。