📜  Pandas DataFrame.loc [](1)

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

Pandas DataFrame.loc []

Pandas DataFrame.loc[] 是一个用于定位行和列的方法,用法类似于使用SQL中的SELECT语句。使用.loc[]方法可以根据条件对DataFrame的行和列进行切片、筛选和修改。

语法

DataFrame.loc[]方法的语法如下:

DataFrame.loc[rows, columns]

其中,rowscolumns都是可选的参数,可以接受单个标签、列表、切片、布尔值、数组或可调用函数等。

rows

rows可选参数表示需要选取的行,可以以以下几种方式指定:

  • 单个标签:选取该标签所在的行。
df.loc['label']
  • 列表:选取多个标签所在的行。
df.loc[['label1', 'label2']]
  • 切片:选取标签所在的行区间。
df.loc['label1':'label2']
  • 布尔值序列:选取经过筛选的行。
df.loc[df['column'] > 10]
  • 条件表达式:选取经过筛选的行。
df.loc[lambda df: df['column'] > 10]
columns

columns可选参数表示需要选取的列,可以以以下几种方式指定:

  • 单个标签:选取该标签所在的列。
df.loc[:, 'column']
  • 列表:选取多个标签所在的列。
df.loc[:, ['column1', 'column2']]
  • 切片:选取标签所在的列区间。
df.loc[:, 'column1':'column2']
  • 布尔值序列:选取经过筛选的列。
df.loc[:, df.dtypes == np.int64]
示例

使用loc[]方法选取一个DataFrame的行和列,示例如下:

import pandas as pd

data = {
    'name': ['Alice', 'Bob', 'Charlie', 'David', 'Emily'],
    'age': [25, 30, 35, 40, 45],
    'gender': ['F', 'M', 'M', 'M', 'F'],
    'city': ['New York', 'San Francisco', 'Seattle', 'Chicago', 'Boston']
}

df = pd.DataFrame(data)

# 获取标签为1的行
print(df.loc[1])

# 获取标签为1,2,3的行
print(df.loc[[1, 2, 3]])

# 获取标签为1到3的行
print(df.loc[1:3])

# 获取年龄大于等于35的行
print(df.loc[lambda df: df['age'] >= 35])

# 获取城市为“Seattle”的行和“name”和“age”这两列
print(df.loc[df['city'] == 'Seattle', ['name', 'age']])

输出:

name              Bob
age                30
gender              M
city    San Francisco
Name: 1, dtype: object
       name  age gender           city
1       Bob   30      M  San Francisco
2  Charlie   35      M        Seattle
3    David   40      M        Chicago
       name  age gender     city
1       Bob   30      M    San Francisco
2  Charlie   35      M  Seattle
3    David   40      M  Chicago
      name  age gender    city
2  Charlie   35      M  Seattle
3    David   40      M  Chicago
4    Emily   45      F  Boston
       name  age
2  Charlie   35