【Pandas】pandas DataFrame loc

Pandas2.2 DataFrame

Indexing, iteration

方法 描述
DataFrame.head([n]) 用于返回 DataFrame 的前几行
DataFrame.at 快速访问和修改 DataFrame 中单个值的方法
DataFrame.iat 快速访问和修改 DataFrame 中单个值的方法
DataFrame.loc 用于基于标签(行标签和列标签)来访问和修改 DataFrame 中的数据

pandas.DataFrame.loc

pandas.DataFrame.loc 是一个强大的数据选择工具,用于基于标签(行标签和列标签)来访问和修改 DataFrame 中的数据。loc 方法允许你使用标签来选择单个元素、行、列或子集。

语法
DataFrame.loc[row_label, column_label]
参数
  • row_label: 行标签,可以是单个标签、标签列表、切片对象、布尔数组或布尔条件。
  • column_label: 列标签,可以是单个标签、标签列表、切片对象、布尔数组或布尔条件。
示例

假设我们有一个 DataFrame 如下:

import pandas as pd

data = {
    'A': [1, 2, 3],
    'B': [4, 5, 6],
    'C': [7, 8, 9]
}

df = pd.DataFrame(data, index=['row1', 'row2', 'row3'])
print(df)

输出:

       A  B  C
row1   1  4  7
row2   2  5  8
row3   3  6  9
访问单个元素

使用 loc 方法访问 row2 行和 B 列的元素:

value = df.loc['row2', 'B']
print(value)

输出:

5
访问单行

使用 loc 方法访问 row2 行的所有列:

row = df.loc['row2']
print(row)

输出:

A    2
B    5
C    8
Name: row2, dtype: int64
访问多行和多列

使用 loc 方法访问 row1row3 行以及 AC 列:

subset = df.loc[['row1', 'row3'], ['A', 'C']]
print(subset)

输出:

       A  C
row1   1  7
row3   3  9
使用布尔条件

使用 loc 方法访问 A 列中值大于 1 的行:

filtered = df.loc[df['A'] > 1]
print(filtered)

输出:

       A  B  C
row2   2  5  8
row3   3  6  9
修改单个元素

使用 loc 方法将 row1 行和 A 列的元素修改为 10:

df.loc['row1', 'A'] = 10
print(df)

输出:

       A  B  C
row1  10  4  7
row2   2  5  8
row3   3  6  9
修改多行和多列

使用 loc 方法将 row1row3 行以及 AC 列的元素修改为 0:

df.loc[['row1', 'row3'], ['A', 'C']] = 0
print(df)

输出:

       A  B  C
row1   0  4  0
row2   2  5  8
row3   0  6  0
总结

pandas.DataFrame.loc 提供了一种灵活且强大的方式来基于标签选择和修改 DataFrame 中的数据。它适用于需要使用行标签和列标签进行复杂选择和操作的场景。

你可能感兴趣的:(DataFrame,pandas,python,开发语言)