方法 | 描述 |
---|---|
DataFrame.head([n]) | 用于返回 DataFrame 的前几行 |
DataFrame.at | 快速访问和修改 DataFrame 中单个值的方法 |
DataFrame.iat | 快速访问和修改 DataFrame 中单个值的方法 |
DataFrame.loc | 用于基于标签(行标签和列标签)来访问和修改 DataFrame 中的数据 |
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
方法访问 row1
和 row3
行以及 A
和 C
列:
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
方法将 row1
和 row3
行以及 A
和 C
列的元素修改为 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 中的数据。它适用于需要使用行标签和列标签进行复杂选择和操作的场景。