pandas dataframe loc iloc函数的使用方法
在数据分析过程中,我们经常需要对数据进行各种操作,如选择、修改、删除等。在pandas库中,我们可以使用loc
和iloc
函数来实现这些操作。本文将详细介绍loc
和iloc
函数的使用方法,并提供相关的示例代码。
1. loc函数
loc
函数是pandas库中的一个重要函数,它主要用于通过标签选择数据。loc
函数的基本语法如下:
df.loc[row_label, column_label]
其中,df
是一个DataFrame对象,row_label
和column_label
分别是行标签和列标签。
下面我们通过一些示例来详细介绍loc
函数的使用方法。
示例1:选择单个元素
import pandas as pd
data = {
'name': ['Alice', 'Bob', 'Charlie', 'David'],
'age': [25, 32, 18, 21],
'city': ['New York', 'Los Angeles', 'San Francisco', 'Seattle']
}
df = pd.DataFrame(data)
print(df.loc[1, 'name'])
Output:
示例2:选择一行数据
import pandas as pd
data = {
'name': ['Alice', 'Bob', 'Charlie', 'David'],
'age': [25, 32, 18, 21],
'city': ['New York', 'Los Angeles', 'San Francisco', 'Seattle']
}
df = pd.DataFrame(data)
print(df.loc[1])
Output:
示例3:选择一列数据
import pandas as pd
data = {
'name': ['Alice', 'Bob', 'Charlie', 'David'],
'age': [25, 32, 18, 21],
'city': ['New York', 'Los Angeles', 'San Francisco', 'Seattle']
}
df = pd.DataFrame(data)
print(df.loc[:, 'name'])
Output:
示例4:选择多行数据
import pandas as pd
data = {
'name': ['Alice', 'Bob', 'Charlie', 'David'],
'age': [25, 32, 18, 21],
'city': ['New York', 'Los Angeles', 'San Francisco', 'Seattle']
}
df = pd.DataFrame(data)
print(df.loc[[1, 3]])
Output:
示例5:选择多列数据
import pandas as pd
data = {
'name': ['Alice', 'Bob', 'Charlie', 'David'],
'age': [25, 32, 18, 21],
'city': ['New York', 'Los Angeles', 'San Francisco', 'Seattle']
}
df = pd.DataFrame(data)
print(df.loc[:, ['name', 'city']])
Output:
示例6:选择多行多列数据
import pandas as pd
data = {
'name': ['Alice', 'Bob', 'Charlie', 'David'],
'age': [25, 32, 18, 21],
'city': ['New York', 'Los Angeles', 'San Francisco', 'Seattle']
}
df = pd.DataFrame(data)
print(df.loc[[1, 3], ['name', 'city']])
Output:
示例7:使用切片选择数据
import pandas as pd
data = {
'name': ['Alice', 'Bob', 'Charlie', 'David'],
'age': [25, 32, 18, 21],
'city': ['New York', 'Los Angeles', 'San Francisco', 'Seattle']
}
df = pd.DataFrame(data)
print(df.loc[1:3, 'name':'city'])
Output:
示例8:使用布尔索引选择数据
import pandas as pd
data = {
'name': ['Alice', 'Bob', 'Charlie', 'David'],
'age': [25, 32, 18, 21],
'city': ['New York', 'Los Angeles', 'San Francisco', 'Seattle']
}
df = pd.DataFrame(data)
print(df.loc[df['age'] > 20])
Output:
2. iloc函数
iloc
函数是pandas库中的另一个重要函数,它主要用于通过位置选择数据。iloc
函数的基本语法如下:
df.iloc[row_index, column_index]
其中,df
是一个DataFrame对象,row_index
和column_index
分别是行索引和列索引。
下面我们通过一些示例来详细介绍iloc
函数的使用方法。
示例9:选择单个元素
import pandas as pd
data = {
'name': ['Alice', 'Bob', 'Charlie', 'David'],
'age': [25, 32, 18, 21],
'city': ['New York', 'Los Angeles', 'San Francisco', 'Seattle']
}
df = pd.DataFrame(data)
print(df.iloc[1, 0])
Output:
示例10:选择一行数据
import pandas as pd
data = {
'name': ['Alice', 'Bob', 'Charlie', 'David'],
'age': [25, 32, 18, 21],
'city': ['New York', 'Los Angeles', 'San Francisco', 'Seattle']
}
df = pd.DataFrame(data)
print(df.iloc[1])
Output:
示例11:选择一列数据
import pandas as pd
data = {
'name': ['Alice', 'Bob', 'Charlie', 'David'],
'age': [25, 32, 18, 21],
'city': ['New York', 'Los Angeles', 'San Francisco', 'Seattle']
}
df = pd.DataFrame(data)
print(df.iloc[:, 0])
Output:
示例12:选择多行数据
import pandas as pd
data = {
'name': ['Alice', 'Bob', 'Charlie', 'David'],
'age': [25, 32, 18, 21],
'city': ['New York', 'Los Angeles', 'San Francisco', 'Seattle']
}
df = pd.DataFrame(data)
print(df.iloc[[1, 3]])
Output:
示例13:选择多列数据
import pandas as pd
data = {
'name': ['Alice', 'Bob', 'Charlie', 'David'],
'age': [25, 32, 18, 21],
'city': ['New York', 'Los Angeles', 'San Francisco', 'Seattle']
}
df = pd.DataFrame(data)
print(df.iloc[:, [0, 2]])
Output:
示例14:选择多行多列数据
import pandas as pd
data = {
'name': ['Alice', 'Bob', 'Charlie', 'David'],
'age': [25, 32, 18, 21],
'city': ['New York', 'Los Angeles', 'San Francisco', 'Seattle']
}
df = pd.DataFrame(data)
print(df.iloc[[1, 3], [0, 2]])
Output:
示例15:使用切片选择数据
import pandas as pd
data = {
'name': ['Alice', 'Bob', 'Charlie', 'David'],
'age': [25, 32, 18, 21],
'city': ['New York', 'Los Angeles', 'San Francisco', 'Seattle']
}
df = pd.DataFrame(data)
print(df.iloc[1:3, 0:2])
Output:
3. loc和iloc的区别
loc
和iloc
虽然都可以用来选择数据,但它们之间还是有一些区别的。
首先,loc
是基于标签的,而iloc
是基于位置的。这意味着,当我们使用loc
选择数据时,需要提供的是行标签和列标签;而当我们使用iloc
选择数据时,需要提供的是行索引和列索引。
其次,“loc在处理切片时包含结束点,而
iloc在处理切片时不包含结束点。这意味着,如果我们使用
loc选择数据时,提供的切片
1:3将会选择索引为1、2、3的数据;而如果我们使用
iloc选择数据时,提供的切片
1:3`将会选择索引为1、2的数据。
下面我们通过一些示例来展示loc
和iloc
在处理切片时的区别。
示例16:使用loc选择数据
import pandas as pd
data = {
'name': ['Alice', 'Bob', 'Charlie', 'David'],
'age': [25, 32, 18, 21],
'city': ['New York', 'Los Angeles', 'San Francisco', 'Seattle']
}
df = pd.DataFrame(data)
print(df.loc[1:3])
Output:
示例17:使用iloc选择数据
import pandas as pd
data = {
'name': ['Alice', 'Bob', 'Charlie', 'David'],
'age': [25, 32, 18, 21],
'city': ['New York', 'Los Angeles', 'San Francisco', 'Seattle']
}
df = pd.DataFrame(data)
print(df.iloc[1:3])
Output:
4. loc和iloc的应用
loc
和iloc
不仅可以用来选择数据,还可以用来修改数据。下面我们通过一些示例来展示如何使用loc
和iloc
修改数据。
示例18:使用loc修改单个元素
import pandas as pd
data = {
'name': ['Alice', 'Bob', 'Charlie', 'David'],
'age': [25, 32, 18, 21],
'city': ['New York', 'Los Angeles', 'San Francisco', 'Seattle']
}
df = pd.DataFrame(data)
df.loc[1, 'name'] = 'Robert'
print(df)
Output:
示例19:使用iloc修改单个元素
import pandas as pd
data = {
'name': ['Alice', 'Bob', 'Charlie', 'David'],
'age': [25, 32, 18, 21],
'city': ['New York', 'Los Angeles', 'San Francisco', 'Seattle']
}
df = pd.DataFrame(data)
df.iloc[1, 0] = 'Robert'
print(df)
Output:
示例20:使用loc修改一行数据
import pandas as pd
data = {
'name': ['Alice', 'Bob', 'Charlie', 'David'],
'age': [25, 32, 18, 21],
'city': ['New York', 'Los Angeles', 'San Francisco', 'Seattle']
}
df = pd.DataFrame(data)
df.loc[1] = ['Robert', 33, 'Chicago']
print(df)
Output:
示例21:使用iloc修改一行数据
import pandas as pd
data = {
'name': ['Alice', 'Bob', 'Charlie', 'David'],
'age': [25, 32, 18, 21],
'city': ['New York', 'Los Angeles', 'San Francisco', 'Seattle']
}
df = pd.DataFrame(data)
df.iloc[1] = ['Robert', 33, 'Chicago']
print(df)
Output:
总结起来,loc
和iloc
是pandas库中非常重要的两个函数,它们可以帮助我们方便地选择和修改数据。在实际的数据分析过程中,我们需要根据实际情况选择使用loc
还是iloc
。