趋近智
提取一个或多个列是在处理 DataFrame 时最常见的任务之一。也许您只需要从一个更大的数据集中获取姓名和年龄,或者您想对某个数值列执行计算。Pandas 提供了直接的方法来实现这一点。
让我们从一个示例 DataFrame 开始,以演示这些原理。假设我们有关于个人的数据,包括他们的姓名、年龄、城市和薪资:
import pandas as pd
data = {'Name': ['Alice', 'Bob', 'Charlie', 'David'],
'Age': [25, 30, 35, 40],
'City': ['New York', 'Los Angeles', 'Chicago', 'Houston'],
'Salary': [70000, 80000, 90000, 100000]}
df = pd.DataFrame(data)
print("Original DataFrame:")
print(df)
Output:
Original DataFrame:
Name Age City Salary
0 Alice 25 New York 70000
1 Bob 30 Los Angeles 80000
2 Charlie 35 Chicago 90000
3 David 40 Houston 100000
选取单个列最直接的方法是使用方括号 [],并在其中放入列名(字符串形式):
# 选取 'Name' 列
names = df['Name']
print("Selected 'Name' column:")
print(names)
print("\nType of the selected object:", type(names))
Output:
Selected 'Name' column:
0 Alice
1 Bob
2 Charlie
3 David
Name: Name, dtype: object
Type of the selected object: <class 'pandas.core.series.Series'>
请注意,以这种方式选取单个列会返回一个 Pandas Series 对象,而不是 DataFrame。Series 类似于一个一维带标签数组,它保存了该列的数据及其索引。
要选取多个列,您再次使用方括号 []。然而,在方括号内,您需要提供一个您想选取的列名列表:
# 选取 'Name' 和 'City' 列
subset = df[['Name', 'City']]
print("Selected 'Name' and 'City' columns:")
print(subset)
print("\nType of the selected object:", type(subset))
Output:
Selected 'Name' and 'City' columns:
Name City
0 Alice New York
1 Bob Los Angeles
2 Charlie Chicago
3 David Houston
Type of the selected object: <class 'pandas.core.frame.DataFrame'>
重要说明:当您在方括号 [['Col1', 'Col2']] 内使用列表选取多列时,结果是一个新的 DataFrame,它只包含您指定的列,并按您列出的顺序排列。
Pandas 也允许使用点表示法访问单个列,类似于访问对象的属性,前提是列名是有效的 Python 标识符(例如,没有空格,不以数字开头,不与现有 DataFrame 方法冲突):
# 使用点表示法选取 'Age' 列
ages_dot = df.Age
print("Selected 'Age' column using dot notation:")
print(ages_dot)
print("\nType of the selected object:", type(ages_dot))
Output:
Selected 'Age' column using dot notation:
0 25
1 30
2 35
3 40
Name: Age, dtype: int64
Type of the selected object: <class 'pandas.core.series.Series'>
与选取单个列的方括号表示法一样,点表示法也返回一个 Series。
[])?尽管点表示法在快速访问时可能很方便,但通常推荐使用方括号表示法(df['Column'] 或 df[['Col1', 'Col2']])来选取列,特别是对于初学者,原因有以下几点:
df['First Name'],df['Sales 2023'])。点表示法对此类名称无效。count 的列,df.count 将指代方法,而非您的列)。方括号表示法(df['count'])避免了这种歧义。.loc 和 .iloc 索引器密切相关,提供更一致的语法模式。df['New Column'] = values)。基于这些原因,尽管您可能会在示例中遇到点表示法,但坚持使用方括号表示法进行列选取有助于编写更清晰、更不易出错的代码。
选取合适的列通常是您为进一步分析或处理选取所需数据的第一步。接下来,我们将了解如何将列选取与行选取结合起来,以实现更强大的数据获取。
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造