📜  Pandas Loc vs Iloc(1)

📅  最后修改于: 2023-12-03 15:03:28.436000             🧑  作者: Mango

Pandas Loc vs Iloc

Pandas是用于数据操作和数据分析的Python库。在Pandas中,有两种主要的数据访问方式:Loc和Iloc。

Pandas Loc

Pandas Loc是基于标签的数据访问方式。它可以访问任何行或列的标签,并使用这些标签进行数据操作。在Loc中,访问某一行的方式是使用行索引的标签,访问某一列的方式是使用列名。下面是一个使用Loc访问数据的示例:

import pandas as pd

# create a sample dataframe
data = {'name': ['John', 'Mary', 'Peter', 'Judy'],
        'age': [22, 28, 19, 31],
        'gender': ['M', 'F', 'M', 'F']}
df = pd.DataFrame(data)

# access a row using label
row = df.loc[2]
print(row)

# access a column using label
col = df.loc[:, 'age']
print(col)

在上面的示例中,我们使用了df.loc[2]来访问第2行,并使用df.loc[:, ‘age’]来访问“age”列的所有数据。

Pandas Iloc

Pandas Iloc是基于整数位置的数据访问方式。它可以访问任何行或列的位置,并使用这些位置进行数据操作。在Iloc中,访问某一行或某一列的方式是使用行或列的位置。下面是一个使用Iloc访问数据的示例:

import pandas as pd

# create a sample dataframe
data = {'name': ['John', 'Mary', 'Peter', 'Judy'],
        'age': [22, 28, 19, 31],
        'gender': ['M', 'F', 'M', 'F']}
df = pd.DataFrame(data)

# access a row using integer location
row = df.iloc[2]
print(row)

# access a column using integer location
col = df.iloc[:, 1]
print(col)

在上面的示例中,我们使用了df.iloc[2]来访问第3行,并使用df.iloc[:, 1]来访问第2列的所有数据。

区别和注意点

在使用Loc和Iloc时,需要注意以下几点:

  • Loc是基于标签的,而Iloc是基于整数位置的。如果你使用的是标签,那么就应该使用Loc,否则使用Iloc。
  • 当使用切片时,Loc是包含结尾的,而Iloc是不包含结尾的。例如,df.loc[0:2]将包含第0、第1、第2行,而df.iloc[0:2]仅包含第0、第1行。
  • 如果你仅仅是选择单个元素,则Loc和Iloc的结果是一样的。
总结

Pandas Loc和Iloc提供了不同的数据访问方式,你可以根据不同的需求来选择不同的方法。无论是使用Loc还是Iloc,都需要注意它们之间的差异和注意点。