在Pandas中,loc
和iloc
是两种用于索引和选择数据的方法。
区别如下:
loc
:基于标签进行索引和选择。它使用行和列的标签来访问数据。可以通过标签名称或条件表达式进行索引,并返回与指定标签对应的行和列。在loc
中,使用的索引范围是包含结束点的。import pandas as pd
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]}, index=['a', 'b', 'c'])
# 使用单个标签获取行和列
print(df.loc['a', 'A']) # 输出 1
# 使用标签切片获取多行和多列
print(df.loc['a':'b', 'A']) # 输出 a 1\nb 2\nName: A, dtype: int64
# 使用条件表达式进行索引
print(df.loc[df['A'] > 1]) # 输出 A B\nb 2 5\nc 3 6\nName: A, dtype: int64
iloc
:基于整数位置进行索引和选择。它使用整数位置来访问数据,类似于Python中的列表索引。可以使用整数索引或条件表达式进行索引,并返回与指定位置对应的行和列。在iloc
中,使用的索引范围是不包含结束点的。import pandas as pd
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]}, index=['a', 'b', 'c'])
# 使用单个整数位置获取行和列
print(df.iloc[0, 0]) # 输出 1
# 使用整数切片获取多行和多列
print(df.iloc[0:2, 0]) # 输出 a 1\nb 2\nName: A, dtype: int64
# 使用条件表达式进行索引
print(df.iloc[df['A'] > 1]) # 输出 A B\nb 2 5\nc 3 6\nName: A, dtype: int64
总结:
loc
使用标签进行索引和选择,而iloc
使用整数位置进行索引和选择。loc
中,使用的索引范围是包含结束点的,而在iloc
中,使用的索引范围是不包含结束点的。