标签访问:在 Pandas 中,df['column_name']
是一种非常常见的数据访问方式,用于从 DataFrame
中选择特定的列。这里的 df
代表一个 DataFrame
对象,而 column_name
是你想要访问的列的名称。以下是详细解释:
1. 基本访问
当你使用 df['column_name']
时,你实际上是在请求 DataFrame
中名为 column_name
的列。这将返回一个 Series
对象,其中包含了该列的所有数据。
2. 返回类型
- 返回的
Series
对象保留了原始DataFrame
的索引。这意味着你可以继续使用这些索引来引用或操作数据。
3. 使用场景
- 数据查看:快速查看某一列的数据。
- 数据操作:对某一列进行操作,如计算统计数据、应用函数等。
- 数据筛选:作为筛选数据的第一步,例如
df[df['column_name'] > 10]
可以选出column_name
列中值大于 10 的所有行。
4. 示例代码
假设你有一个 DataFrame
,如下所示:
import pandas as pd
# 创建 DataFrame
data = {
'Name': ['Alice', 'Bob', 'Charlie'],
'Age': [25, 30, 35],
'City': ['New York', 'Los Angeles', 'Chicago']
}
df = pd.DataFrame(data)
# 通过标签访问 'Age' 列
age_series = df['Age']
print(age_series)
输出将是:
0 25
1 30
2 35
Name: Age, dtype: int64
5. 注意事项
- 确保列名正确无误,否则会抛出
KeyError
。 - 这种方法只适用于列名是字符串的情况。如果列名是数字或特殊字符,你可能需要使用
df.iloc[]
或df.loc[]
。
6. 链式索引
你还可以通过链式索引来进一步筛选数据。例如,如果你想要获取名字为 'Alice' 的人的年龄,可以这样做:
alice_age = df[df['Name'] == 'Alice']['Age']
print(alice_age)
这将输出:
0 25
Name: Age, dtype: int64
通过标签访问是 Pandas 中非常强大且灵活的数据操作方式,使得数据选择和操作变得直观和高效。
位置访问:在 Pandas 中,iloc
是一种基于整数位置的索引方法,用于通过行号和列号来选择数据。这种方式不依赖于行标签或列标签,而是直接通过它们的位置来进行索引。以下是对您提供的两个 iloc
使用示例的解释:
1. df.iloc[0]
- 访问第一行
iloc[0]
用于选择DataFrame
的第一行数据。- 这里的
[0]
表示选择索引为 0 的行,即DataFrame
的第一行。 - 返回的结果是一个
Series
对象,包含了第一行的所有列的数据。 - 这种方法不考虑行的实际标签是什么,只根据行的位置来选择。
示例代码:
import pandas as pd
# 创建 DataFrame
data = {
'Name': ['Alice', 'Bob', 'Charlie'],
'Age': [25, 30, 35],
'City': ['New York', 'Los Angeles', 'Chicago']
}
df = pd.DataFrame(data)
# 通过位置访问第一行
first_row = df.iloc[0]
print(first_row)
输出将是:
Name Alice
Age 25
City New York
Name: 0, dtype: object
2. df.iloc[:, 0]
- 访问第一列
iloc[:, 0]
用于选择DataFrame
的第一列数据。- 这里的
:
表示选择所有行,0
表示选择索引为 0 的列,即DataFrame
的第一列。 - 返回的结果是一个
Series
对象,包含了所有行的第一列的数据。 - 这种方法同样不考虑列的实际标签是什么,只根据列的位置来选择。
示例代码:
# 继续使用上面的 df
# 通过位置访问第一列
first_column = df.iloc[:, 0]
print(first_column)
输出将是:
0 Alice
1 Bob
2 Charlie
Name: Name, dtype: object
注意事项
iloc
索引是基于 0 的,即第一行或第一列的索引是 0。- 如果你尝试访问超出
DataFrame
大小的位置,Pandas 会抛出一个错误。 iloc
可以用于更复杂的索引操作,例如df.iloc[0:2, 0:2]
可以访问前两行和前两列的数据。
iloc
是 Pandas 中非常强大的工具,它允许你以编程方式精确控制数据的选择,非常适合在不知道具体标签的情况下进行数据操作。