📅  最后修改于: 2023-12-03 15:18:13.676000             🧑  作者: Mango
Pandas DataFrame.loc[]
是一个用于定位行和列的方法,用法类似于使用SQL中的SELECT
语句。使用.loc[]
方法可以根据条件对DataFrame的行和列进行切片、筛选和修改。
DataFrame.loc[]
方法的语法如下:
DataFrame.loc[rows, columns]
其中,rows
和columns
都是可选的参数,可以接受单个标签、列表、切片、布尔值、数组或可调用函数等。
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
可选参数表示需要选取的列,可以以以下几种方式指定:
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