在 Python 中,loc
是一个常用于 Pandas 数据库中 DataFrame 对象的方法,用于基于标签(label)对数据进行索引和选择操作;
1. 基本语法
DataFrame.loc[row_label, column_label]
row_label
: 行标签,可以是单个标签、标签列表、切片对象或者布尔数组。column_label
: 列标签,可以是单个标签、标签列表、切片对象或者布尔数组。
2. 功能和用途
-
选择单行或多行数据:
df.loc['row_label']
df.loc[['row_label1', 'row_label2']]
df.loc['row_label1':'row_label2'] # 使用标签范围进行选择
-
选择单列或多列数据:
df.loc[:, 'column_label']
df.loc[:, ['column_label1', 'column_label2']]
df.loc[:, 'column_label1':'column_label2'] # 使用标签范围进行选择
-
同时选择行和列:
df.loc['row_label', 'column_label']
df.loc[['row_label1', 'row_label2']['column_label1', 'column_label2']] df.loc['row_label1':'row_label2', 'column_label1':'column_label2']
-
使用布尔数组选择:
df.loc[df['column_label'] > 0]
这种方法允许基于条件筛选来选择行。
3. 注意事项
-
标签索引:
loc
方法使用行和列的标签进行索引,因此要确保标签存在于 DataFrame 中,否则会引发 KeyError。 -
包含末端:与 Python 切片不同,
loc
在选择范围时会包含末端,即包含指定的末端行和列。
示例1
假设有一个 DataFrame df
:
import pandas as pd
data = {
'A': [1, 2, 3, 4, 5],
'B': ['a', 'b', 'c', 'd', 'e'],
'C': [0.1, 0.2, 0.3, 0.4, 0.5]
}
df = pd.DataFrame(data, index=['X', 'Y', 'Z', 'W', 'Q'])
# 选择单行数据
print(df.loc['X'])
# 选择单列数据
print(df.loc[:, 'A'])
# 选择多行和多列数据
print(df.loc[['X', 'Z'], ['A', 'C']])
# 使用布尔数组选择
print(df.loc[df['A'] > 2])
示例2:在for循环中可以对指定行索引进行列的新增
for index,row in df.iterrows(): df.loc[index, '名称'] =Name df.loc[index, '地址'] = address df.loc[index, '地区'] = area_name
在以上示例中,loc
方法根据标签进行了不同类型的数据选择操作,这些操作涵盖了从简单的单行单列选择到复杂的条件筛选和范围选择。
通过 loc
方法,可以方便地在 Pandas 中对数据进行定位、检索和切片操作,特别适合于基于标签进行数据访问和修改。