📜  Pandas DataFrame 中 loc() 和 iloc() 的区别

📅  最后修改于: 2022-05-13 01:54:42.663000             🧑  作者: Mango

Pandas DataFrame 中 loc() 和 iloc() 的区别

Python的 Pandas 库对于数学数据的操作非常有用,被广泛应用于机器学习领域。它包括许多使其正常运行的方法。 loc()iloc()是这些方法之一。这些用于对 Pandas DataFrame 中的数据进行切片。它们有助于从 DataFrame 中方便地选择数据。它们用于根据某些条件过滤数据。这两种方法的工作原理在汽车样本数据集中进行了解释。

# importing the module
import pandas as pd
   
# creating a sample dataframe
data = pd.DataFrame({'Brand' : ['Maruti', 'Hyundai', 'Tata',
                                'Mahindra', 'Maruti', 'Hyundai',
                                'Renault', 'Tata', 'Maruti'],
                     'Year' : [2012, 2014, 2011, 2015, 2012, 
                               2016, 2014, 2018, 2019],
                     'Kms Driven' : [50000, 30000, 60000, 
                                     25000, 10000, 46000, 
                                     31000, 15000, 12000],
                     'City' : ['Gurgaon', 'Delhi', 'Mumbai', 
                               'Delhi', 'Mumbai', 'Delhi', 
                               'Mumbai','Chennai',  'Ghaziabad'],
                     'Mileage' :  [28, 27, 25, 26, 28, 
                                   29, 24, 21, 24]})
   
# displaying the DataFrame
display(data)

输出 :

loc() : loc()是基于标签的数据选择方法,这意味着我们必须传递我们想要选择的行或列的名称。与iloc()不同,此方法包括传入的范围的最后一个元素。 loc()iloc()不同,可以接受布尔数据。可以使用loc()方法执行许多操作,例如-

1.根据一些条件选择数据:

# selecting cars with brand 'Maruti' and Mileage > 25
display(data.loc[(data.Brand == 'Maruti') & (data.Mileage > 25)])

输出 :

2.从 DataFrame 中选择一系列行:

# selecting range of rows from 2 to 5
display(data.loc[2 : 5])

输出 :

3.更新任何列的值:

# updating values of Mileage if Year < 2015
data.loc[(data.Year < 2015), ['Mileage']] = 22
display(data)

输出 :

iloc() : iloc()是一种基于索引的选择方法,这意味着我们必须在方法中传递整数索引来选择特定的行/列。与loc()不同,此方法不包括传入的范围的最后一个元素。与loc()不同, iloc()不接受布尔数据。使用iloc()执行的操作是:

1.使用整数索引选择行:

# selecting 0th, 2th, 4th, and 7th index rows
display(data.iloc[[0, 2, 4, 7]])

输出 :

2.同时选择一系列列和行:

# selecting rows from 1 to 4 and columns from 2 to 4
display(data.iloc[1 : 5, 2 : 5])

输出 :